First, fry the marinated fish for just 2-3 mins on each side. Just enough to help it hold its shape in the biryani so that it doesn't fall apart whilst cooking. Remember that it will get cooked further in the masala later.
Heat a pan and add quarter cup of oil in it, then fry your sliced onions until golden. Remove half of them from the pan and set aside, leave the other half in the pan.
Add the chopped tomatoes and stir-fry on medium to low heat until well softened. You can even cover this for a while so it keeps cooking until the tomatoes are very soft. Add ginger and garlic, followed by the tomato paste/puree and cook for a few minutes. Then add the whisked yoghurt and stir together, keep cooking this on low heat until the yoghurt is well blended into the mixture and some oil starts coming out from the sides. Now add the powdered spices and green chilli, some coriander and the fish. Cook in the masala for about 15 minutes on low heat, you can add a bit of water (less than half a cup) if you find it too dry. Lastly, squeeze in the lemon juice.
Next prepare the Rice
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 fish masala, followed by the fried onions set aside from before, the rest of the chopped coriander and the mint leaves, then cover with the rest of the rice so that the fish masala is sandwiched between the rice layers.
Drizzle 2 tbsp. of oil, the soaked saffron water and some orange/yellow colour on the rice. Seal the pot and put on dum/steam it on the stove....or bake in the oven for about 10 minutes. Serve!!