Prepare the Cupcakes:
Preheat your oven to 350°F (175°C). Line a muffin tin with cupcake liners.
In a medium bowl, whisk together the flour, baking powder, baking soda, and salt.
In a large bowl, beat together the softened butter and peanut butter until smooth and creamy.
Add the sugar and continue beating until the mixture is light and fluffy.
Beat in the eggs, one at a time, making sure each is fully incorporated before adding the next.
Stir in the vanilla extract.
Gradually add the dry ingredients to the wet ingredients, alternating with the milk. Start and end with the dry ingredients. Mix until just combined.
Divide the batter evenly among the cupcake liners, filling each about 2/3 full.
Bake for 18-22 minutes or until a toothpick inserted into the center of a cupcake comes out clean.
Let the cupcakes cool in the tin for 5 minutes, then transfer them to a wire rack to cool completely.
Prepare the Peanut Butter Frosting:
In a large bowl, beat the softened butter and peanut butter together until smooth and creamy.
Gradually add the powdered sugar, one cup at a time, beating well after each addition.
Add the milk, vanilla extract, and salt, and beat until the frosting is smooth and fluffy. If the frosting is too thick, add more milk a tablespoon at a time until you reach your desired consistency.
Once the cupcakes are completely cool, frost them with the peanut butter frosting using a piping bag or a spatula.
Optional: Garnish with chopped peanuts for an extra crunch.