Preheat the oven to 350°F. This recipe makes 20 cupcakes, so prepare one pan (or maybe two) with cupcake liners. Set aside.
In a medium bowl, whisk together the flour and baking powder. Set aside.
In a large bowl, with a mixer on medium speed, beat the butter and granulated sugar for 3 minutes, or until fluffy.
Beat in the peanut butter and vanilla.
Add the eggs, 1 at a time, beating well after each addition.
Reduce the mixer speed to low. Add the flour mixture alternately with the buttermilk, beginning and ending with the flour mixture.
Fill the cupcake liners ⅔ of the way full with batter.
Bake the cupcakes for 20 minutes, rotating the pans halfway through (after 10 minutes). The cupcakes are done when an inserted toothpick comes out with a few crumbs, but no wet batter.
Cool the cupcakes in the pans on wire racks for 5 minutes. Then, remove them from the pans and let them cool completely on the racks.
In a large bowl, use a hand mixer on low speed to beat the confectioners' sugar, butter, peanut butter, heavy cream, vanilla, and salt.
Increase the speed to high and beat until light and fluffy.
Spread a thin layer of the frosting on the cooled cupcakes. Serve.
