Preheat oven to 350F. Grease and flour three 6" cake rounds, line with parchment.
In a medium bowl, combine flour, baking powder, baking soda, spices, and salt. Set aside.
In the bowl of a stand mixer combine vegetable oil and sugars. Beat until well combined (2 mins). Add eggs one at a time, fully incorporating after each addition. Add vanilla.
Add flour mixture in 3 parts. Fold in carrots.
Spread batter evenly into prepared pans and bake for 55mins or until a toothpick inserted into the center comes out clean.
Place cakes on wire rack to cool for 10mins then turn out onto wire rack to cool completely.
Cream Cheese Frosting:
Using a stand mixer or hand mixer beat butter until pale and creamy. Reduce speed to low. Add powdered sugar 1 cup at a time and mix on low until well blended. Increase speed to medium and beat for 3 minutes.
Add vanilla and continue to beat on medium for 1 minute.
Slowly add chilled cream cheese one cube at a time (about 1 tablespoon at a time). Beat well until blended and ensure no lumps of cream cheese remain.
If needed, add cornstarch or meringue powder 1 tablespoon at a time to stiffen the frosting (I didn't but this is an option). Run mixer on low for a couple of minutes to remove any air bubbles.
Place one layer of cake on a cake stand or serving plate. Top with approximately 2/3 cup of buttercream and spread evenly. Repeat with remaining layers. Frost and smooth the outside with a thin crumb coat.
Decorate the top with a swirl and some edible flowers if desired.