Preheat oven to 160°C/320 Fahrenheit.
Pat beef chunks dry with paper towels and place in a clean dry plastic bag with the seasoned flour, and shake to coat.
Heat 1 tablespoon of the olive oil in a large, flame-proof, oven-proof casserole dish or deep fry pan and brown meat in batches (to avoid overcrowding pan). Set browned meat and juices aside. In the same pan, heat remaining olive oil and cook onions and garlic until soft, 4-5 minutes.
Add tomato paste, guinness, browned meat, juices and beef stock to the pan. Rub bottom of pan with a wooden spoon to loosen any pan brownings. Cover with a tight-fitting lid and transfer to preheated oven to cook until meat is tender, 2-3 hours.
Season stew to taste with salt and pepper. If the sauce is very watery, strain into a small pot, whisk in 1 teaspoon cornflour mixed with 1 tablespoon water, and boil on the stove top until sauce has thickened, about 5 minutes, then mix back with meat.
Make the potato top while the stew is cooking. Cook potatoes in boiling salted water until soft, 20-25 minutes. Drain and mash with milk and Dijon mustard. Season to taste with salt and pepper.
Transfer stew to a pie, baking or casserole dish. Spread or pipe on mashed potato and sprinkle over grated cheese. Grill until cheese is melted and bubbling, about 5 minutes.
To make the savoy cabbage, bacon and hazelnuts, heat olive oil in a large fry pan on medium to high heat, and fry bacon for 2 minutes.
Add hazelnuts and fry for a further few minutes with the bacon. Set aside.
Add cabbage to the pan with lemon juice and sauté until soft, about 2 minutes. Throw bacon and hazelnuts back in with cabbage and toss together.
To serve, spoon some pie and cabbage onto each plate, and enjoy with a pint of Guinness (if there’s any left over!)