Preheat & Prep Pans: Set your oven to 350 F. Grease two 9-inch round cake pans, then line the bottoms with parchment paper. For best results, also grease the parchment and lightly dust the pans with flour.
Mix Dry Ingredients: In a large mixing bowl, whisk together the flour, sugar, baking powder, baking soda, cinnamon, cardamom, all spice, and salt until evenly combined.
Incorporate Carrots: Stir the shredded carrots into the dry mixture, ensuring they are evenly distributed.
Mix Wet Ingredients: In a separate bowl, whisk the eggs, melted butter, and buttermilk until well blended.
Combine Wet & Dry: Pour the wet mixture into the dry ingredients and use a rubber spatula to fold everything together until no dry flour remains, be sure to avoid overmixing.
Bake: Evenly divide the batter between the prepared cake pans. Bake for 35-40 minutes or until a toothpick inserted into the center of a cake layer comes out clean.
Cool: Remove the cakes from the pans and place them upside down on wire racks to cool completely before frosting.
For the Frosting:
Whip Cream Cheese: Using a stand mixer with the paddle attachment, beat the softened cream cheese on medium-high speed until smooth and creamy.
Add Butter & Vanilla: Mix in the softened butter and vanilla extract, scraping down the sides as needed to ensure everything is fully incorporated.
Incorporate Sugar: Gradually add the powdered sugar, one cup at a time, mixing on medium-low speed until the frosting is thick and well blended.
Adjust Consistency (if needed): If the frosting is too thick, mix in a small amount of heavy cream (1 teaspoon at a time) until it reaches a spreadable consistency.
Frost the Cake: Once the cake has cooled completely, use a knife or offset spatula to spread a generous layer of frosting between the cake layers. Then, cover the top and sides evenly with the remaining frosting.