In a deep saucepan, heat the first three caramel ingredients, stirring just until the sugar dissolves. Continue to cook over a medium-high heat, swirling the pan often (don't use the spoon to stir the mixture as this can cause crystallisation in the caramel) until the mixture becomes golden. Remove from the heat and immediately add the cream then stand back for a second as the mixture will bubble up. Stir in the cream until completely combined, then stir in the salt and vanilla extract. Set the caramel aside to cool.
Butter six, 4-oz ramekins and dust with the cocoa powder, shaking out any excess.
In a small saucepan, heat the chocolate and butter together on low, stirring until just melted. Remove from the heat and stir in the flour and salt until smooth.
Crack the eggs into a large bowl and beat using an electric whisk whilst gradually adding the sugar until pale. Pour the chocolate mixture into the egg mixture and gently fold together using a rubber spatula. Divide the mixture between the ramekins and chill for at least 30 minutes (or up to 5 hours, if making in advance).
Ten minutes before you're ready to bake the cakes, preheat your oven to 350 F.
Spoon a heaped teaspoon of the cooled caramel into the centre of each ramekin and slightly push it down into the cake mixture. Place the ramekins onto a small baking tray and bake for 12-20 minutes, they should be molten in the middle and set around the edges. Loosen the edges of the cakes with a knife and turn out onto individual plates. Serve immediately with whipped cream or vanilla ice cream.