Preheat the oven: Preheat your oven to 350°F (175°C). Grease and flour two 9-inch round cake pans.
Mix dry ingredients: In a large bowl, whisk together the flour, baking powder, baking soda, cinnamon, ginger, nutmeg, cloves, and salt. Set aside.
Combine wet ingredients: In another bowl, whisk the sugars, oil, eggs, and vanilla extract until smooth and combined.
Incorporate carrots: Gradually stir the grated carrots into the wet ingredients.
Combine dry and wet mixtures: Add the dry ingredients to the wet mixture, stirring until just combined. If using, fold in the chopped nuts.
Bake the cakes: Divide the batter evenly between the prepared cake pans. Bake for 35-40 minutes or until a toothpick inserted into the center comes out clean. Allow the cakes to cool in the pans for 10 minutes, then transfer them to a wire rack to cool completely.
Prepare the frosting: Beat the cream cheese and butter together until smooth and creamy. Gradually add the powdered sugar, vanilla extract, and milk (if needed for spreading consistency) and beat until well combined.
Assemble the cake: Once the cakes are completely cool, spread a thick layer of cream cheese frosting over the top of one cake layer. Place the second layer on top and frost the top and sides of the cake.
Garnish: Optionally, garnish with additional chopped nuts, shredded coconut, or carrot decorations.