Preheat your oven to 150°C fan.
Score the lamb all over in a criss cross pattern, cutting about 2cm deep. Season generously with salt and pepper.
Scatter the onions and carrots in a large roasting dish. Add the garlic and tomato purée, then pour in the white wine, beef stock, Worcestershire sauce, Dijon mustard, honey and balsamic vinegar. Stir the liquid together, then pop the lamb on top.
Tuck the rosemary and thyme into the dish. The liquid should come around halfway up the lamb.
Cover with foil and roast for 5 hours, until the lamb is tender and falls apart.
Carefully lift the lamb onto a tray and leave it to rest for 10 minutes.
Skim any excess fat from the cooking juices, then pour them into a saucepan along with everything else. Blitz it, then strain. Simmer until reduced into a rich, glossy gravy.
Pull the lamb apart using two forks, discarding any large pieces of fat. Stir enough of the gravy through the meat to coat every strand, then serve with the remaining gravy alongside.