Soak the rice for and hour.
Meanwhile, mix the ingredients of marinade and rub onto the the fish/steaks and keep aside for 15 minutes.
Drain the soaked rice and put it in a blender with chilli powder, salt and just enough water to make a thick paste and grind to a fine paste. Add the curd into a bowl and whisk well. Add the ground rice paste and mix well.
Heat oil in a pan on medium heat. Dip the fish or steaks in the batter and put in hot oil. Fry till golden brown on either sides. drain the fish and reserve the oil for further use.
To make fried onion paste, fry thinly sliced onion to golden brown. Drain and cool. When cool, add a little bit of curd and grind to a fine paste.
Grind the chopped onion along with the fried onion paste to a fine paste. Add curd and mix well.
Heat a few tablespoons of the reserved oil in a pan. Add the mixed onion paste and stir over medium heat for a minute. Add the ginger-garlic pastes, cashewnut paste, coriander powder, chilli powder, turmeric powder and salt and stir. Add the curd and bring to a boil. Reduce heat and cook till oil separates. Add about 2 cups of water and bring to a boil. Simmer for 10 minutes. Remove and strain the gravy to another pan. Bring to a boil. Reduce to low heat and add the fried fish. Sprinkle garam masala and kasoori methi. Cover and simmer for few more minutes. Adjust the seasoning.
Remove and arrange the fish on shallow serving dish and pour the gravy. Garnish with chopped coriander leaves. Serve hot with rice.