Preheat oven to 350°F. Line the bottom of two 9" round baking pans with parchment paper and lightly grease and flour the sides. Set aside.
Whisk the flour, granulated sugar, brown sugar, baking powder, baking soda, cinnamon, nutmeg, cloves and ginger all together very well.
Make a well in the center of dry ingredients and add oil, eggs and vanilla. Beat the batter until just combined but smooth, don't over-mix. Fold in the grated carrots with a rubber spatula or spoon. Batter will be thick. If you are adding pecans or raisins, do so now. Distribute the batter evenly into prepared baking pans.
Bake for 30-40 minutes. Start checking cake at 25 minutes. Cakes are done when a toothpick inserted into the center comes out with a few moist crumbs. Allow to cool on a wire rack for 20 minutes and then invert onto a wire rack so they can finish cooling completely out of the pans. While they are cooling, prepare the frosting.
Beat the cream cheese and butter until smooth with no lumps. Add in the vanilla and mix until smooth. Add in the powdered sugar 1 cup at a time on low until combined. Whip frosting for another minute or so until smooth and creamy.
Once cakes are completely cool, level cakes, if needed. Place one cake on the bottom of a cake stand or plate facing up. Spread a good amount of frosting on top until completely covered. Add second cake, bottom up, and frost the outside of the cake.
Frosting tip: Spread one thin layer of frosting around the cake and set it in the fridge. Once it has firmed up a bit, add another thick layer - the frosting looks much more even this way. Also known as a crumb coat.