Preheat oven to 350°F (175°C). Line a 12-cup muffin tin with cupcake 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 softened butter and sugar together with an electric mixer on medium speed for 3-4 minutes until light and fluffy. Add eggs one at a time, beating well after each addition, then mix in the vanilla extract.
Add the flour mixture in three additions, alternating with the milk in two additions, beginning and ending with flour. Mix on low speed just until no white streaks remain, scraping down the bowl as needed. Do not overmix.
Divide batter evenly among the cupcake liners, filling each about 2/3 full. Bake for 18-20 minutes until a toothpick inserted into the center comes out clean and tops spring back when lightly pressed. Cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
While cupcakes cool, make the salted caramel: Heat the sugar in a heavy-bottomed saucepan over medium heat, stirring constantly with a wooden spoon. The sugar will clump before melting into a smooth amber liquid after 8-10 minutes. Once fully melted, immediately add the butter pieces and whisk until combined.
Remove the caramel from heat and slowly pour in the heavy cream while whisking constantly (it will bubble vigorously). Stir in the flaky sea salt. Let the caramel cool to room temperature, about 1 hour, stirring occasionally.
Make the buttercream: Beat the softened butter on medium-high speed for 3 minutes until creamy and pale. Gradually add the powdered sugar, one cup at a time, beating on low speed after each addition. Add 3 tablespoons heavy cream and beat on high speed for 4-5 minutes until light and fluffy.
Reserve 1/4 cup of the cooled caramel for drizzling. Fold the remaining caramel into the buttercream, swirling gently to create ribbons rather than fully incorporating it.
Pipe or spread the buttercream onto the cooled cupcakes. Drizzle with the reserved caramel and sprinkle with additional flaky sea salt before serving.