Preheat the oven to 350°F (175°C). Line a cupcake pan with liners.
In a large mixing bowl, combine flour, sugar, cocoa powder, baking powder, baking soda, and salt.
Add the softened butter to the dry ingredients and mix with an electric mixer until crumbly.
In a separate bowl, whisk together the eggs, vanilla extract, and milk. Gradually add this mixture to the dry ingredients, mixing until well combined and smooth.
Divide the batter evenly among the cupcake liners, filling each about 2/3 full.
Bake in the preheated oven for about 20 minutes, or until a toothpick inserted in the center comes out clean. Allow the cupcakes to cool completely on a wire rack.
For the marshmallow frosting, in a mixing bowl, beat the softened butter until creamy. Gradually add powdered sugar and mix until combined.
Add the heavy cream and vanilla extract, beating until light and fluffy. Fold in the mini marshmallows.
Transfer the marshmallow frosting to a piping bag and pipe onto each cooled cupcake.
Top the frosted cupcakes with graham cracker crumbs and place one whole graham cracker on each for decoration. If desired, add a piece of chocolate on top.
Make sure to let the cupcakes cool completely before frosting to prevent the frosting from melting.
You can toast the marshmallows for an extra touch by using a culinary torch on the frosting before serving.