Preheat your oven to 350°F (175°C).
Grease and flour two 9-inch round cake pans.
In a large bowl, cream the softened butter and sugar together until light and fluffy.
Add the eggs one at a time, beating well after each addition.
Stir in the vanilla extract.
In another bowl, whisk together the flour, baking powder, and salt.
Gradually add the dry ingredients to the butter mixture, alternating with buttermilk.
Pour the batter evenly into the prepared pans.
Bake in the preheated oven for 25-30 minutes or until a toothpick comes out clean.
Allow cakes to cool in the pans for 10 minutes, then transfer to a wire rack to cool completely.
Prepare the cream cheese frosting by beating cream cheese until smooth, then gradually add powdered sugar and milk until desired consistency is achieved.
Assemble the cake by placing one layer on a serving plate, spreading a layer of frosting on top, then adding the second layer.
Frost the top and sides of the cake with the remaining cream cheese frosting.
Decorate as desired and slice to serve.