Prepare the Cake Pans:
Preheat the oven to 350°F (175°C). Grease two 9-inch round cake pans and line the bottoms with parchment paper.
Mix the Dry Ingredients:
In a medium bowl, whisk together the flour, baking powder, baking soda, and salt.
Cream the Butter and Sugar:
In a large bowl, use an electric mixer to beat the butter and sugar until light and fluffy. Add the eggs one at a time, mixing well after each addition. Stir in the vanilla extract.
Combine the Wet and Dry Ingredients:
Gradually add the dry ingredients to the wet ingredients, alternating with the buttermilk, starting and ending with the dry ingredients. Mix until just combined.
Bake the Cake Layers:
Divide the batter evenly between the prepared pans. Bake for 25-30 minutes, or until a toothpick inserted in the center comes out clean. Let the cakes cool in the pans for 10 minutes, then transfer them to a cooling rack to cool completely.
Make the Frosting:
Beat the butter until creamy. Gradually add the powdered sugar, mixing well. Add the vanilla extract and heavy cream, one tablespoon at a time, until the frosting is smooth and spreadable. Add food coloring if desired.
Assemble the Cake:
Place one cake layer on a serving plate. Spread an even layer of frosting on top. Place the second layer on top and frost the entire cake. Decorate with sprinkles or other toppings.