To make the beef vindaloo, heat the oil in a large heavy-based pan and add the onions, garlic, ginger and chilli. Cook for 8-10 minutes until softened and just beginning to turn golden. Add the beef and the vindaloo paste. Stir well until everything is evenly coated and then add 200 ml of water with the tomatoes, vinegar and sugar.
Bring to the boil, stirring until well combined. Then reduce the heat, cover with a lid and simmer for 1½-2 hours until the beef is meltingly tender but still holding its shape, stirring occasionally to ensure that the beef doesn’t stick to the bottom of the pan.
To prepare the saffron rice, place the saffron threads into a small bowl and pour over a little boiling water and leave to infuse. In a large heavy based pan with a lid, start to heat the butter and when it just starts to foam, tip in the rice and cardamom. Stir the rice for 2 minutes over a medium heat, and season with a little salt and pepper.
Pour over enough boiling water to cover the rice by an inch, bring to a simmer and cover with the lid. Allow to cook for 5 minutes, then pour in the saffron (including the water that it has been soaking in). Cover again and continue to cook for a further 5 minutes or until the rice is just cooked but retains some bite.
Spoon the beef vindaloo on to warmed plates with the saffron rice and add dollops of yoghurt and a good scattering of coriander leaves to serve.