Preheat your oven to 350°F (175°C). Grease and flour three 9-inch round cake pans.
In a medium bowl, whisk together the flour, baking powder, and salt. In a large mixing bowl, cream together the softened butter and granulated sugar until light and fluffy. Add the eggs one at a time, beating well after each addition. Stir in the vanilla extract.
Gradually add the dry ingredients to the wet ingredients, alternating with the milk, beginning and ending with the dry ingredients. Mix until just combined.
Divide the batter evenly among the prepared cake pans. Smooth the tops with a spatula and bake in the preheated oven for 25-30 minutes or until a toothpick inserted into the center comes out clean.
In a medium saucepan, combine granulated sugar and water over medium heat. Stir until the sugar dissolves, then let it come to a boil without stirring. Cook until the mixture turns a deep amber color. Remove the saucepan from heat and carefully whisk in the butter, heavy cream, vanilla extract, and a pinch of salt. Allow the caramel sauce to cool.
Once the cakes have cooled, place one layer on a serving plate. Drizzle some of the caramel sauce over the top, then spread a layer of caramel frosting. Repeat with the remaining layers. Use the remaining caramel sauce to drizzle over the top of the cake.