Take a mixing bowl and add all ingredients mentioned in marination section. Marinate for at least 30 minutes to 1 hour. I usually marinate chicken overnight by keeping it in freezer.
Soak cashewnuts in warm water for 30 minutes.
Heat a frying pan and add 2 teaspoon butter. After butter melts, add the marinated chicken pieces and fry on both sides for 5 minutes. Let both the sides get browned. Switch off heat and keep the chicken pieces aside.
Heat a skillet or wok, add 2 tablespoon oil. After oil gets heated, add butter.
Add onion and sauté till onion turns pinkish.
Add tomatoes and sauté till tomato turns mushy.
Add kasuri methi, garlic and ginger and sauté till garlic turns fragrant.
Add cashewnuts and mix well.
Switch off the heat and let it cool.
After cooling, transfer the onion tomato mixture to a blender or mixer and blend until smooth. You may add ¼ to ½ cup water if needed. Do not add too much water, as the gravy will be too thin.
Pass the gravy through a sieve to get smooth velvety sauce or gravy.
Heat the skillet again and add 1 tablespoon oil.
After oil gets heated, add minced garlic and minced ginger.
After garlic turns fragrant, add bay leaf and pour the pureed sauce/gravy.
Add red chili powder and garam masala and mix well.
Add fried chicken pieces and cook covered on medium – low heat for 10 – 15 minutes by stirring occasionally.
Add 1 teaspoon kasuri methi (dried fenugreek leaves) and simmer for 2 minutes.
Add salt to taste and mix well.
Garnish with chopped coriander or cilantro leaves.