Preheat oven to 180 degrees C. Line 12 cupcake cups with baking cups. In a bowl whisk together the flour and baking powder.
In a mixing bowl thoroughly cream together the sugar and 1/2 cup of margarine until very well blended. Beat in the eggs one at a time until thoroughly combined and stir in the vanilla and almond essence. Gradually beat in the flour mixture alternating with the milk in several additions. Spoon the batter into the prepared baking cups, filling them about 2/3 full.
Bake the cupcakes in the preheated oven until a toothpick inserted into the centre of a cupcake comes out clean, 20 to 25 minutes.
To make caramel, place the brown sugar, 1/2 cup margarine, golden syrup and vanilla into a large saucepan over medium heat then bring the mixture to a boil. Reduce heat and simmer until thickened, 3 to 4 minutes. Remove from heat and allow to cool to warm (not hot) temperature. Add the cream a little at a time, until the caramel has the consistency of honey. Mix in the pinch of salt and allow to cool to room temperature.
Beat the salted butter with icing sugar in a bowl with an electric mixer on medium speed until the mixture is fluffy; slowly add and beat in the caramel a tablespoon at a time, beating until the icing is smooth.
Butter can be substituted for margarine, of course but that's just what i used. The milk could be any type.
If desired, save back a tablespoon or so of the caramel from the icing, for a drizzle over top of the cupcakes.