Preheat your oven to 350°F (175°C) and line a muffin tin with cupcake liners.
In a mixing bowl, cream together the butter and sugar 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 to the butter mixture, alternating with the milk, beginning and ending with the flour mixture.
Divide the batter evenly among the cupcake liners, filling each about two-thirds full.
Bake for 18-20 minutes, or until a toothpick inserted into the center comes out clean. Let cool completely before frosting.
For the frosting, beat the butter until creamy. Gradually add the powdered sugar, beating until smooth. Add the heavy cream and vanilla extract, and beat until fluffy. Stir in the caramel sauce.
Frost the cooled cupcakes with the caramel frosting. Drizzle with additional caramel sauce if desired.