Heat the oil in a large flameproof casserole dish. Add the steaks 4 at a time and brown them well on both sides, then transfer to a plate. Now add the onions, garlic and ginger to the oil, plus juices left in the dish, and fry for at least 15 mins, stirring very frequently, until they are golden and soft. Add the saffron, cinnamon sticks, coriander, harissa and ground almonds, and stir well for 1 min.
Tip in the stock, then return the meat to the dish. Add the bay leaves, cover and simmer for 1 hr. Remove the lid and cook for another 1 hr 30 mins, checking occasionally to ensure the mixture doesn’t catch on the bottom. Add the cranberries 10 mins before the end of the cooking time so they can plump up in the gravy. Check the beef after the cooking time – it should pull apart easily with 2 forks. If not, add a splash more water or stock and cook for another 30 mins. Remove cinnamon and bay leaves.
To freeze: Cool completely, then pack into freezer bags. Use within 3 months. Thaw in the bags at room temperature for 5-8 hrs depending on the bag size, although batches of 2 can be unwrapped and reheated in a pan with a little water in the base. This will also keep in the fridge for a couple of days if you don’t want to freeze it. Serve with mash, rice or couscous (or gluten-free alternative).