01 - Preheat the oven to 350°F. Grease a 2-quart baking dish thoroughly.
02 - In a medium bowl, whisk together flour, baking powder, baking soda, salt, ground ginger, cinnamon, cloves, and nutmeg until evenly mixed.
03 - Using a mixer or whisk, cream the softened butter with the brown sugar until the mixture is light and fluffy.
04 - Beat in the eggs one at a time, then add molasses and vanilla extract, mixing until just combined.
05 - Add the dry ingredients to the wet mixture in portions, alternating with the milk, stirring gently to avoid overmixing.
06 - Pour the batter into the prepared baking dish, smoothing the surface. Bake for 35 to 40 minutes until a toothpick inserted in the center comes out clean.
07 - While baking, combine sugar and water in a saucepan over medium heat without stirring. Heat until sugar dissolves and turns deep amber, swirling pan carefully.
08 - Remove pan from heat, whisk in the heavy cream cautiously as it bubbles, then add butter and salt. Stir until smooth and uniform.
09 - Allow pudding to cool for 10 minutes. Serve warm drizzled generously with the prepared caramel sauce.