Pure onions, garlic, ginger and serrano. Keep it aside. It should make about 1½ cup of pure.
Heat 4 tbsp of butter, add whole dry spices listed under "Whole Dry Spices" ingredients to butter. Saute till cumin seeds start to turn fragrant and deepen in color.
Add onion, garlic, ginger and serrano pure to the pot along with 1 tsp salt.
Keep sautéing on medium heat until most of the moisture from onions puree evaporates.
Add pureed tomatoes and tomato paste to the pot. Mix well and cook it on medium heat for 7-8 minutes.
Add all tandoori masala, garam masala, cumin coriander powder, turmeric powder, kashmiri red chili powder and 1 tsp of salt to the pot. Mix well.
Keep cooking on medium heat until most of the moisture evaporates and butter starts to separate. Keep stirring every few minute so that it does not stick to the bottom or burn.
Turn the heat off, discard the whole dry red chili, cinnamon stick and black cardamom from the gravy.
Blend the gravy to smoother paste with silken tofu. Keep it aside.
Heat 2 tbsp of butter in the pot, as soon as butter melt without getting too hot, add kashmiri red chili powder and garam masala to the butter.
Stir it and immediately add the blended gravy to the pot, making sure the kashmiri red chili powder and garam masala does not burn.
Mix well. Add heavy cream and water (skip heavy cream if using silken tofu). Mix well and simmer on low/medium heat for 3-5 minutes.
Add more heavy cream and/or water to get desired consistency (skip heavy cream if using silken tofu). Taste it and add more salt/spices if you need.
Rub kasuri methi between your palms and add it to the gravy. Add honey to the gravy. Mix well.
Simmer for another 2-4 minutes. Take it off the stove.
Use it for any type of protein, paneer, vegetables or even as pasta sauce!!