1. Preheat the oven to 220°C/gas mark 7.
2. Heat the olive oil in a large pan set over a high heat and add the beef. Cook, turning occasionally, for 5 minutes, until well browned. Place the onions and carrots in a roasting tray, then set the beef on top of the vegetables.
3. Place the potatoes in a large saucepan and cover with water. Season with salt and add the garlic clove. Bring to the boil, then reduce the heat and simmer for 25 minutes, until tender. Drain and transfer to a separate roasting tray with a drizzle of oil.
4. Place the beef in the oven for 15 minutes, then reduce the temperature to 180°C/gas mark 4 and continue roasting for 40 to 60 minutes more, depending on how you like your beef. Cooking times per 500g beef are rare 10 to 15 minutes, medium 15 to 20 minutes, well done 20 to 25 minutes. After 60 minutes, add the tray of baby potatoes and roast for 30 minutes (this will correspond with 15 minutes of the beef roasting and 15 minutes of the beef resting).
5. When the beef is done to your liking, place it on a cutting board and loosely cover with a foil tent to rest and keep warm for 15 minutes.
6. Meanwhile, to make the gravy, place the roasting tray on the hob over a medium heat. Stir the onions and carrots, then sprinkle over the flour and cook for 2 minutes, until coloured. Deglaze with the orange juice and port, scraping the tray to lift up all the caramelised flavour. Pass the liquid through a fine-mesh sieve into a saucepan without crushing the vegetables through it. Place the saucepan on a medium heat and add the beef stock. Simmer for 2 to 3 minutes, until the right consistency has been reached.
7. Just before carving the beef, heat the butter and olive oil in a sauté pan set over a medium heat. Add the cranberries, garlic and chilli. Cook for 30 seconds, then add the spinach and honey. Continue cooking for 1 minute more, until the spinach has wilted.
8. Carve the beef and serve immediately with the roasted baby potatoes, port gravy and flavoursome spinach.