1. To make the cupcakes, add all dry ingredients to a large bowl and whisk together.
2. Add egg, buttermilk and vegetable oil to the dry ingredients and mix well.
3. Add vanilla to boiling water and add to mixture. Mix well.
4. Pour into cupcakes pans and bake at 300 degrees for about 20-25 minutes.
5. When done, remove cupcakes from oven and cupcake tin and allow to cool.
6. While cupcakes cool, make the filling. Add milk, butter and caramels to a pot over medium heat and melt, stirring constantly.
7. Once melted and smooth, add peanuts and marshmallow fluff and stir until combined.
8. Remove from heat and allow to cool and thicken for about 30-35 minutes.
9. Once cupcakes are cool and filling is ready, cut out a hole out of the top part of the cupcake to add the filling.
10. Fill the hole with the caramel filling.
11. To make the icing, beat the shortening and butter until smooth.
12. Slowly add 3 cups of powdered sugar. Mix until combined.
13. Mix in the vanilla extract, peanut butter and 1 tbsp water or milk.
14. Add the rest of the powdered sugar and mix until smooth. Add more water or milk until the right consistency.
15. Ice the cupcakes.
16. To make the glaze, whisk together powdered sugar, cocoa and milk. Drizzle over cupcakes.
17. Top cupcakes with half of a mini Snickers.