Wash and soak the rice in water for 20minutes. Boil enough water and cook the rice with 1 tsp salt and 2 tsp oil till ~70% cooked. Drain water and transfer the rice to a flat plate. Keep aside.
Clean and wash the fish. Marinate with salt and turmeric. Heat 2 tbsps of oil in a pan, fry the fish steaks till golden. Keep aside.
Add the rest of the oil to the same pan, throw in the green and black cardamom, cinnamon stick, bay leaves and green chillies and cook till the spices release their aroma. Stir in the onion paste and ginger paste and cook on a medium flame till they release oil. Now carefully fold the whipped yoghurt and sprinkle the red chili powder and salt. Continue to cook for another 5-7 minutes. Take the masala off the flame and allow to cool.
Take about a quarter of the cooked masala and smear well over the fried fish. Keep aside.
Now it is time to assemble the biriyani. Grease the bottom of the pan with a little ghee, add a layer of rice and spread some of the cooked masala and fried onions over the rice gently. Place the masala marinated fried fish, another layer of rice and another layer of cooked masala and fried onions. Splash just a little hot water and cover the pan tightly.
Cook over a low flame for 10-12 minutes. Give it a standing time of another 10 odd minutes, toss gently and serve hot.