Heat the oven to 220C/fan 200C/Gas 7. Sift the flour into a bowl with a pinch of salt. Take out 1 tbsp and set aside. Beat the egg in a separate bowl then add to the flour. Gradually whisk in 300ml milk to make a smooth batter.
Pop a roasting tin into the oven to warm. Peel the onion and slice into wedges. Halve the pepper. Scoop out the seeds and white bits. Slice into lengths. Break the broccoli into florets. Slice 1/2 cabbage into fine shreds.
Tumble the veg into the warm roasting tin. Drizzle with a good glug of olive oil. Season with salt and pepper. Toss to coat in the oil. Roast for 15 mins till they are softened and lightly charred.
Pour the batter into the tin. Pop straight back into the oven. Turn the temperature down to 200C/Fan 180C/Gas 6. Bake for 30-40 mins till the batter is risen and golden.
Peel the shallots and finely slice them. Fill a kettle and boil it. Crumble the stock cube into 300ml of the boiling water. Warm a little splash of olive oil in a pan. Add the shallots. Season.
Cook the shallots over a low heat for 10-15 mins till the shallots are soft and golden. Stir in the balsamic vinegar. Sizzle for a min. Stir in the flour you saved in step 1. Slowly stir in the stock till you have a smooth gravy.
Bring the gravy to the boil. Turn the heat down. Simmer for 5 mins. Stir every so often till it’s thick. Taste and adjust the seasoning.
Warm a splash of oil in a wok or deep frying pan. Add the cabbage. Stir-fry for 5 mins till the cabbage is softish and a little charred. Season with salt and pepper. Serve with the veg-in-a-hole and gravy.