Preheat oven to 350°F (175°C). Line a 12-cup muffin tin with paper liners and set aside.
In a medium bowl, whisk together the flour, baking powder, and salt until evenly combined. Set aside.
In a large bowl, beat the butter and sugar together with an electric mixer on medium-high speed for 3-4 minutes until light and fluffy. Scrape down the sides of the bowl.
Add the eggs one at a time, beating well after each addition. Mix in the vanilla extract until combined.
With the mixer on low speed, add the flour mixture in three additions, alternating with the milk in two additions, beginning and ending with flour. Mix just until no streaks remain — do not overmix.
Divide the batter evenly among the prepared liners, filling each about 2/3 full. Bake for 18-20 minutes, until a toothpick inserted in the center comes out with a few moist crumbs. Cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
For the salted caramel: Heat 1 cup sugar in a heavy-bottomed saucepan over medium heat, stirring constantly with a heat-resistant spatula. The sugar will clump, then melt into a smooth amber liquid after 6-8 minutes. Watch carefully to prevent burning.
Once the caramel is a deep amber color, immediately add the butter pieces (it will bubble vigorously). Stir until the butter is completely melted, then remove from heat and slowly pour in the heavy cream while stirring. Stir in the sea salt. Let cool to room temperature, about 1 hour.
For the buttercream: Beat 1 cup butter on medium speed for 2 minutes until creamy. Gradually add the powdered sugar, one cup at a time, beating on low speed after each addition.
Add 1/4 cup cooled caramel and 2 tablespoons heavy cream. Increase speed to medium-high and beat for 3-4 minutes until light and fluffy. The frosting should hold stiff peaks.
Frost the cooled cupcakes using a piping bag, offset spatula, or butter knife. Drizzle with extra caramel if desired and sprinkle with a tiny pinch of flaky sea salt before serving.