
Preheat the oven to 350°F. Lightly grease and flour two 9-inch round cake pans. Set aside.
In a large bowl, whisk together the flour, baking powder, and salt until evenly combined and free of lumps.
In a separate large mixing bowl, cream the butter and sugar together until light, fluffy, and pale in color. This step helps create a soft, tender crumb, so mix thoroughly.
Add the eggs one at a time, mixing well after each addition. Scrape down the sides of the bowl as needed to ensure everything incorporates evenly.
Stir in the vanilla extract until fully combined.
Gradually add the dry ingredients, alternating with the half & half. Begin and end with the dry mixture. Mix just until combined—do not overmix, as this can make the cake dense.
Divide the batter evenly between the prepared cake pans and smooth the tops.
Bake for 25–30 minutes, or until a toothpick inserted into the center comes out clean or with a few moist crumbs.
Allow the cakes to cool in the pans for about 15 minutes. Then carefully remove them and transfer to a wire rack to cool completely before frosting.
In a large bowl, beat the softened butter until smooth and creamy.
Add the cocoa powder and mix until fully incorporated.
Gradually add the confectioners’ sugar, alternating with the milk. Mix on low speed at first to prevent splattering, then increase speed once incorporated.
Stir in the vanilla extract and continue beating until the frosting becomes smooth, fluffy, and spreadable. If needed, adjust the consistency with a small splash of milk.
Place one cake layer on a serving plate or cake stand.
Spread an even layer of chocolate buttercream over the top.
Add the second cake layer and frost the top and sides of the cake.
Let the cake sit for about 30 minutes before slicing to allow the frosting to set.
Slice, serve, and enjoy.