First, marinate your chicken with salt, your dry spices, and yogurt Mix very well and set aside, covered, in the fridge to marinate for an hour.
In a pot, fry your sliced onions until very brown. Make sure to use enough oil and to properly fry as opposed to just soften and caramelize the onions.
To bloom your saffron, use a mortar and pestle to crush your saffron and you may use an ice cube to bloom is simply my placing it in a bowl with your crush saffron strands and allowing it to melt completely. Alternatively, you can bloom with hot water adding about 1/4 cup of hot water to you crushed saffron strands and letting it sit for 10-15 minutes.
Let your onions cool and add them to a blender with your soaked cashews, yogurt and a bit of water. Blend until very very smooth. You can add bloom saffron here and blend or add bloomed saffron directly to your curry when adding the blended mixture into the pot. (I have not tested the flavour difference).
In a pot, on medium heat add some oil (or ghee) and add your dry spices, cardamom, cloves, cinnamon stick, bay leaf, and sautee for about 2 minutes.
Add your split green chilies and sauté for an addition minute.
Carefully place your marinated chicken and any marinade in the bowl into your pot and reduce heat to low-medium. Cover for about 5 minutes and let steam.
After 5 minutes, add your blended mixture to your chicken and mix so chicken is fully coated. Add up to 1 cup of water if the mixture is too thick and keep on low to medium heat and let simmer.
Keep uncovered and simmer stirring periodically so it does not burn.
Simmer for about 40 minutes until chicken is cooked and tender and the oil has separated from the sauce a little and the sauce has thickened to desired consistency. Don't be afraid to add a little water increments of 1/4 cup to get to your desired consistency during the simmering process.
Enjoy with naan, rice or roti.