In a pan add 1 cup of water and bring it to a boil.
Add all the whole spices and let them infuse the water with their aroma and flavor. Give them 2-3 minutes.
Now add coarsely diced onion and tomatoes. Also, add garlic and cashew nuts.
Put 2 tablespoon of butter and cover the pan.
Let it cook for 10-15 minutes till tomatoes start to become mushy.
Turn off the flame and let it cool a bit.
Once cooled,( remove the whole spices that you can ) transfer into a blender and blend to make a smooth paste.
Sieve the blended paste to remove all the whole spices bits and tomato peels. You will get a silky smooth gravy.
Now, heat the same pan and add oil and butter at the same time.
As the butter melts, add grated ginger. Sauté it for a minute and reduce the flame to low.
Add all the powdered spices and give them a quick stir. Quickly add the gravy and mix well.
Add ½ cup of water and cover the pan. Let it cook for about 10 minutes at low heat.
Now add the fresh cream and let simmer for an additional 2-3 minutes. At this stage, fix the consistency of the curry by adding more water if needed.
Add the vegan chicken or seitan pieces to the butter chicken curry.
Cook everything at low flame for 5-6 minutes.
Take out in a serving bowl and serve hot with naan or steamed rice.