Preheat your oven to 170°C. Grease a 2 litre pyrex bowl well and put a full kettle of water on to boil.
Cream the butter and castor sugar until pale and creamy. Add the eggs, orange rind, orange juice and vanilla extract and beat everything together.
Sift the flour, baking powder and salt into the bowl. Beat for a few seconds. Add the milk, then beat again until the batter is smooth.
Tip the batter into the greased bowl. Cover the bowl with a greased piece of foil and press down firmly around the sides. Place the bowl in a deep roasting tray and fill the tray with water up to 4 or 5cm.
Bake the pudding for 2 hours. Top up the water in the roasting pan after an hour. While the pudding is baking toast the flaked almonds in a dry frying pan and set aside.
Start making the caramel sauce during the last 10 minutes of baking time. Place castor sugar and water in a small saucepan. Stir over a low heat to dissolve the sugar. Once the sugar has dissolved increase the heat slightly and bring to the boil.
Remove the pudding from the oven after 2 hours. Remove from the roasting tray and allow to sit (covered) for 5-10 minutes while you finish the sauce.
Boil the syrup for 10 to 12 minutes or until it turns a deep golden colour. Remove from the heat and carefully whisk in the cream. Continue to whisk until the sauce is smooth.
Take the foil off the bowl and carefully invert the pudding onto your serving plate. Pour the hot caramel sauce over the pudding. Sprinkle with toasted almonds. Serve as is or with vanilla custard.