Heat up 2 tablespoons of oil, add the garlic and ginger puree, and cook for 20-30 minutes until fragrant.
Add the chilli powder, and cook for a further 10 seconds.
Pat the diced beef dry with kitchen paper, and add the to the pan, cooking until lightly brown.
Add the turmeric, garam masala, cumin and the chopped tomatoes together with 4 cups of water.
Leave to cook on a medium heat with the lid on until the liquid has been absorbed.
Add more broth as necessary until the beef is tender, and coated in a sauce - add more spices if necessary.
Season to taste with salt and pepper, add the yogurt, and mix well.
Rinse the rice under cold water, and add it to the pan together with 1 ¼ cups water, the cardamon and cloves.
Leave to cook until the rice is nearly cooked, then drain well.
In an oven-proof dish, spread half of the amount of rice, top with the beef.
Add the remaining oil to a frying pan, cut the onions into strips, and fry on a low to medium heat until golden brown.
Spread the fried onions over the beef, then cover with the remaining rice.
Mix the saffron with the milk, and set aside for 5 minutes until the milk is coloured.
Preheat the oven to 200 degrees Celsius (390 Fahrenheit).
Drizzle the saffron milk over the rice, then cover the dish with kitchen foil.
Bake for 15 minutes until the rice is fully cooked and fluffy.
Garnish with chopped parsley or coriander.