First, start with the kababs/meatballs.
Put the chopped onion, coriander, ginger, garlic pastes and chillies in a processor and grind until smooth, try not to use any water for this. Next, add the minced meat and process together with the green paste until well combined and the mixture is very very smooth.
Turn it out into a bowl, add the cumin, turmeric, tandoori, black pepper and salt. Mix well. Squeeze out the milk from the soaked bread then add the bread into the mixture. Discard the milk. Knead the mixture properly for about 3-5 minutes until everything is very well combined. Cover the bowl with cling film and refrigerate for about 30 minutes.
Shape the meatballs (make sure they are very smooth and round) and then lightly shallow fry them in very little oil preferably in a non-stick pan, just for a couple of minutes on each side. Drain and set aside. They will cook further in the gravy/masala, so don't over-cook them at this point. If they crack a little bit during frying, don't panic, they will be covered in gravy later so the small imperfections won't show, just be gentle when adding them to the hot oil and lifting them out.
Next prepare the masala/gravy.
Heat the oil in a deep pot then add the whole spices (cinnamon, cardamom and cloves) followed by the fresh tomatoes and half the green chilli. Cook until the tomatoes are dry, then add half of the remaining fried onions (reserve a handful for later). Add the garlic and ginger pastes, followed by the tomato paste. Sprinkle salt, cumin, chilli, turmeric and coriander powders. Cook together until the oil is released from the sides. Then add the whipped yoghurt and cook until the gravy is thick and cooked through. Sprinkle the sugar and mix well.
Next, add some water (about half cup...just enough to immerse the kababs in). Once the water simmers, reduce the heat to low and then gently add the fried kababs. Cover and simmer on low heat to cook the kababs through. Every once in a while, open the pot and gently swirl everything together so that the gravy coats the kababs and they get turned over so that they may cook evenly on all sides. Don't use a spoon to mix as this might break the kababs.
Once the kababs are fully cooked, adjust salt, add the remaining chopped green chilli, garam masala and chopped coriander. Add the potatoes if you want to use them in the recipe and stir them in.
Finally prepare the Rice
Wash then soak 3 cups of rice in water for about 20-30 mins.
Soak a few saffron strands in some water and set aside.
Bring a big pot of water to boil, add salt, 4 cardamom pods, 2-3 cinnamon sticks and 2-3 cloves plus about 2 tbsp. of oil.
Drain the soaked rice and add it to this water when it is boiling. Cook until the rice is about 3/4 done, remove and strain out all the water.
Put half the rice back into the pan, add the kabab masala on top of it, sprinkle the handful of reserved fried onions and some chopped fresh coriander, and add the remainder of the rice to cover the masala. Then drizzle about 2 tbsp. of oil and the saffron water. Add a bit of orange colour on one side and mix it up a bit with a spoon and cover the pot tightly. Steam this on low heat for 15 minutes or put in a 180 C preheated oven for about the same time. Serve hot!