Make the cupcakes
Preheat the oven to 350F/180C and line a cupcake pan with 12 cupcake liners.
Melt together the butter, sugar, honey, and molasses in a saucepan over low-medium heat, stirring frequently. Don’t let the mixture boil and remove the pan from the heat once the butter has completely melted. Set aside to cool a little.
In a large mixing bowl, whisk together the eggs, milk, and vanilla extract.
In a separate mixing bowl, whisk together the flour, ginger, cinnamon, nutmeg, baking powder, baking soda, and salt.
Slowly pour the melted butter mixture into the bowl with the egg mixture, whisking as you go until fully combined.
Sieve the flour mixture into the bowl with the wet ingredients and fold everything together until just combined. A few small lumps are ok.
Transfer the mixture to your lined cupcake cases. Each should be about 2/3 of the way full.
Bake for 18-22 minutes or until a skewer inserted into the center of a cupcake comes out clean or with just a few moist crumbs.
Leave the cupcakes in the pan for about 10 minutes before transferring them to a wire rack to cool completely.
Make the frosting
Add the butter and vanilla extract to a large mixing bowl. Mix with an electric hand whisk until smooth.
Gradually sieve in the powdered sugar and spices a little at a time, mixing with the electric whisk after each addition.
If the frosting becomes too thick, add milk 1 tbsp at a time until a smooth, pipeable consistency is reached.
Once the cupcakes have completely cooled, spread or pipe swirls of frosting on top of each one.
Drizzle a little caramel sauce over the top of each cupcake (optional).