Preheat the oven to 350°F.
In a large mixing bowl, whisk together oil, granulated sugar, and brown sugar until combined and smooth. Add in the eggs and vanilla, and whisk until smooth.
Take a separate bowl; whisk together the remaining dry ingredients until combined. Gradually add the dry ingredient mixture into the egg mixture, and stir until smooth. Fold in the grated carrots and stir until combined. If you would like to add nuts and/or raisins, stir them in at this time as well.
Place the batter evenly into the prepared baking pans. Bake for 25-30 minutes, or until a knife inserted in the middle of the cakes comes out clean. Take out the cake and wait till its reach room temperature.
To make the cream cheese frosting, combine the cream cheese, butter and vanilla in a large mixing bowl and stir until combined and smooth. Gradually stir in the powdered sugar and mix until it is completely combined.
Once the cakes reach room temperature,* use a cake leveler or a bread knife to slice off the rounded tops of the cakes so that they are completely flat on top. Place the first cake on your serving platter, add a large scoop of frosting on top of it, and spread the frosting so that it covers the cake evenly and extends a bit over the edges. Repeat with the second and third layers of the cake. Then use the remainder of the frosting to frost all around the side edges of the cake.
Now serve it to your family or guest.