For the candied shallots, simmer the shallots gently for 4-5 minutes in a pan of boiling water to soften. Drain.
Heat the butter in a non-reactive frying pan, add the shallots and fry gently until golden-brown, about 3-4 minutes.
Add the sugar and stir until it melts and begins to caramelise and coat the shallots.
Mix the wine, port, cassis and stock together in a bowl. Add a quarter of the wine mixture to the pan with the shallots and bring to a boil, then add the bay leaf and lemon zest. Reduce the heat until the mixture is simmering, then continue to simmer until the liquid has reduced to a glaze.
Add some more of the wine mixture to the pan and simmer again until the liquid has reduced to a glaze. Add the remaining liquid bit by bit, reducing each time, until the shallots are coated in the glaze. Set aside until needed.
For the bubble and squeak, heat half of the olive oil in a frying pan and cook the leeks for 3-4 minutes, or until softened but not coloured.
Mix the leeks, mashed potato and cabbage together in a bowl. Season, to taste, with salt and freshly ground black pepper.
Heat the remaining olive oil in the frying pan. Place four 7.5cm/3in chefs' rings into the pan and spoon the bubble and squeak into the rings, packing down gently. Cook until golden-brown on the bottom, turn the rings over carefully and cook on the other side. Remove from the pan and keep warm until ready to serve, carefully removing the chefs’ rings before serving.