Soak cashew nuts in warm water for few minutes. Keep it aside.
On medium heat in pan, take some oil or butter and once its hot add cumin seeds, onions, garlic, ginger and green chili. Saute it until onions turns translucent.
Add other whole spices too along with fennel seeds, and then add cashew nuts and tomato sauce. Let it cook for few seconds and then let it cool down.
Blend this mixture once it cools down with 1/4 -1/3 cup water. You can add more water if required. Strain the mixture after blending so that sauce looks smooth and silky.
Heat butter in a pan on medium heat. Once it’s hot, add prepared onion tomato sauce.
Stirring occasionally cook it until it thickens up for 3-4 minutes.
Add spices like red chili, turmeric, coriander powder and salt.
Add garam masala close to it getting cooked along with crushed kasuri methi and add sugar or honey.
Add paneer cubes. If you like you can sauté paneer very lightly before adding in.
If you are using cream, then add it at this point along with cardamom powder. Mix and let it simmer for few seconds and turn off the flame.
Garnish it with cilantro if you like and some saffron and it is ready to be served.