Drain the poppy seeds and the cashews and grind to a smooth paste with very little water, make sure that this paste isn't grainy, once done keep it aside. Also, grind the onions, ginger and garlic to a smooth paste without any water
Wash and pat dry the fish pieces and then rub them with a teaspoon of salt. Heat the oil in your cooking pot and fry the fish pieces, 3-4 minutes each side. Drain and set aside
In the same oil, add all the whole spices (cinnamon, cardamom, caraway seeds, bay leaf, dried chili, cloves, peppercorns). When fragrant over medium heat, add the onion, ginger, garlic paste and cook until it doesn't smell raw
Add the poppy seed- cashew nut paste, mix well and cook until oil separates. Lower the flame and add the yoghurt, mix well and cook until oil surfaces on top
Add the coriander powder, salt and sugar along with ¼ cup hot water, once this comes to a boil, add the fried fish pieces. Stir them well in the curry, cover and cook for 5-7 minutes
Turn the flame off, add the fresh chillis, ghee, garam masala, rose water and kewra water, gently mix all these in and keep covered for 10 minutes
Serve your delicious Bengali fish rezala with steamed rice or any lightly seasoned rice of choice. Enjoy!