Rub the garlic halves and thyme leaves all over the beef. Place the joint in a large dish, drizzle over the olive oil, then rub it into the meat all over. Cover and leave to marinate in the fridge for at least 24 hours to marinate. Before you cook it, take the beef out of the fridge about an hour before cooking, to let it come up to room temperature.
Preheat the oven to 190°C/ 374° F.
Preheat a dry frying pan until very hot, then sear the beef over high heat until it’s coloured on all sides.
Place the beef in a large roasting tray with the garlic halves and the thyme sprigs.
Add carrots and quartered onions, sprinkle with olive oil, and coarsely ground salt. Roast for about 45 minutes for medium-rare. Add 10 to 12 minutes for medium or add about 30 to 45 minutes if you like it well done or longer.
Transfer the beef to a warm platter, cover loosely with aluminium foil and leave to rest for at least 20 minutes or longer before serving.
To make the gravy, place the roasting tray over low heat on medium heat, add sliced onions to the juices in the tray and cook gently for about 20 minutes, stirring occasionally, until really soft and caramelised. Stir in the flour until combined, making sure there are no lumps. Bring to the boil. stir in the hot stock, then cook over medium heat for about 8 minutes, stirring occasionally, until reduced to a thick gravy.