Prep your tools. Heat the oven to 350°F (175°C). Line a 12-cup muffin pan with cupcake liners.
Have your caramel, peanuts, and chocolate ready for later.
Mix the dry ingredients. In a large bowl, whisk flour, sugar, cocoa, baking powder, baking soda, and salt until evenly combined.
Combine the wet ingredients. In a separate bowl, whisk buttermilk, oil, egg, and vanilla. Pour into the dry mixture and stir until just combined.
Add the hot liquid. Stir in the hot coffee or water. The batter will look thin—that’s what makes the cupcakes moist with a tender crumb.
Fill and bake. Divide the batter among the liners, about two-thirds full.
Bake 16–19 minutes, or until a toothpick comes out with a few moist crumbs. Cool the cupcakes in the pan 5 minutes, then move to a rack to cool completely.
Make the frosting. Beat the softened butter and peanut butter until fluffy, about 2 minutes. Add powdered sugar and salt, then beat on low to combine.
Add vanilla and 2 tablespoons cream; beat until smooth and spreadable. Add more cream if needed.
Core and fill. Once cool, use a small knife or cupcake corer to remove a plug from the center of each cupcake. Spoon in about 1–2 teaspoons of caramel and place the top back on (trim it if needed).
Frost generously. Pipe or spread the peanut butter frosting on each cupcake.
Aim for a tall swirl to hold toppings well.
Finish with crunch and drizzle. Sprinkle with chopped peanuts and Snickers pieces. Drizzle melted chocolate over the top and add a tiny pinch of flaky salt if you like.
Let it set. Chill for 10–15 minutes to set the chocolate drizzle. Serve at room temperature for the best texture and flavor.