For the filling, preheat the oven to 150C/300F/Gas3.
Mix the beef, flour and seasoning together in a bowl.
Heat some of the olive oil in a large flameproof casserole until hot. Shake the excess flour from the beef and fry, in batches, for 4-5 minutes, or until browned all over. Remove the beef and set aside.
Add the remaining olive oil and onions to the pan and fry for 3-5 minutes, or until softened and just coloured.
Return the beef to the casserole and add the garlic and beer. Continue to cook until the volume of the liquid has reduced by half then add the beef stock and bring to a simmer. Cover with a lid and cook in the oven for 2 hours.
Season, to taste, with salt and freshly ground black pepper. Set aside to cool completely.
For the suet pastry, mix the self-raising flour, suet, water and salt in a bowl to form a soft dough (do not overwork the pastry).
Roll out three-quarters of the pastry to a 1cm/½in thickness and use it to line a 1.2 litre/2 pint pudding basin. Fill with the cold cooked beef filling and moisten the pastry around the rim of the basin with water.
Roll the remaining dough to a 1cm/½in thickness and place over the top of the basin. Pinch the edges firmly together and trim off any excess.
Cover with a double layer of greaseproof paper and a single sheet of aluminium foil. Tie around the top edge with string.
Steam the pudding for 1½ hours in a steamer, or on an upturned plate in a covered saucepan half-filled with water.
For the cabbage, heat a frying pan until hot, add the butter, cabbage and 3 tbsp water and cook for 4-5 minutes, stirring occasionally, until just tender. Stir in the parsley, salt and freshly ground black pepper.
Serve the pudding in slices with the cabbage alongside.