Take the giblets out of the turkey. Rinse them. Pop them in a pan. Peel and halve an onion. Rinseand chop the carrot and celery. Add them to the giblets with 1 bay leaf, 6 peppercorns and 500ml cold water.
Pop a lid on the pan. Bring to the boil. Once it’s boiling, turn the heat down. Simmer over a lowish heat for 2 hours to make a giblet stock. Strain into a bowl. Discard the veg and giblets. Leave the stock to cool. Heat your oven to 190°C/Fan 170°C/Gas 5.
Peel and finely slice the other 2 onions. Pop them in a roasting tin. Add 1 tbsp olive oil and season them. Mix them together with your hands so they’re well coated in oil and seasoning.
Weigh your turkey to check how much it weighs exactly. Pop it on top of the onions. Smear 125g of the butter all over the turkey, especially on the breast. Season. Pour 1 bottle of cider into the tin. Cover loosely with foil, making sure the foil is sealed around the tin edges.
Put the turkey in the oven on the middle shelf. Roast for 3 hours 20 mins for a 5kg turkey. For the final 40 mins, take the foil off the tin so the turkey will brown.
Insert a skewer into one of thighs. If the juices run clear, it’s ready. Transfer the turkey to a board. Wrap loosely in foil. Rest for 1 hour. Spoon the onions out of the tin. Pop them in a bowl. Pour the roasting tin juices into a measuring jug.
Leave the juices for 15 mins so the fat rises to the surface. Skim off the fat. Pour in enough of the giblet stock to make 600ml. Top up with 150ml more cider from the second bottle. Melt 25g butter in a pan. Stir in the flour. Cook and stir the roux for 2 mins.
Slowly whisk in the stock. Bring to the boil. Turn the heat down. Simmer for 5-10 mins till the gravy has thickened. Stir the onions back in. Taste and adjust the seasoning. Serve the gravy with the roast turkey and the cranberry sauce.