Prepare the spice mix first. Add the coriander seeds, dried red chillies, cumin seeds, cinnamon, cloves, green cardamom, and black peppercorns to a dry pan.
Roast the whole spices over low to medium heat for 1–2 minutes, or until they become aromatic. Avoid burning them.
Allow the spices to cool slightly, then transfer them to a blender or spice grinder and grind into a fine spice mix. Set aside.
Do not wash the blender jar, as it will be used again later in the recipe.
Heat the oil and butter in a pan or kadai. Use more oil than butter; one small dollop of butter is enough to add richness.
Add the ginger-garlic paste and sauté for 1–2 minutes, or until the raw aroma disappears.
Add the diced onions, tomatoes, and bell pepper. Season with salt and cook until the vegetables soften and are properly cooked.
Take a small portion of the cooked vegetable mixture and transfer it to the same blender jar used for the spice mix.
Blend the vegetables into a smooth or slightly coarse paste.
Add the blended vegetable paste back to the kadai and mix well. This helps create a thicker, more flavorful gravy.
Add ½ cup water and mix. Add additional water as required depending on how thick or saucy you want the Kadai Paneer.
Add the prepared kadai spice mix and Kashmiri red chilli powder. Stir well and cook briefly so the spices combine with the gravy.
Add the paneer cubes.
Reduce the heat to low and gently mix until the paneer is evenly coated with the masala and gravy.
Cook for another 3–5 minutes on low heat. Do not overcook the paneer, as it may become chewy.
If the gravy becomes too thick, add a small splash of water until it reaches your preferred consistency.
Taste and adjust the salt or spice level as required.
Once the gravy has thickened and the paneer has absorbed the flavors, turn off the heat.
Let the Kadai Paneer rest for about 2 minutes before serving so the freshly ground spices can settle into the gravy.
Garnish with chopped fresh coriander or ginger juliennes, if desired, and serve hot.