Wilt the spinach in a large pot, with a little vegetable oil.
After the spinach is wilted, puree in a food processor.
In a large braiser / dutch oven, cook the diced onions (in ghee or canola oil,
with a tbsp of salt) until a rich golden brown / toffee color. I usually cook
on low/medium-low to avoid burning. This is the foundation of the
dish and will take 25-30 min.
Meanwhile, mince the garlic / ginger and pound into a paste with a mortar and pestle.
When the onions are translucent, add the minced pepper and heeng.
When the onions are browned, add the ginger / garlic paste and cook for 2
minutes.
Add the spice mixture and cook for an additional 2 minutes.
Add the chicken stock and pureed spinach, and stir the mixture completely,
bring to a simmer, then cook covered for 5 minutes.
Set heat to low, then slowly stir in butter and yogurt until completely
incorporated.
Add the paneer, tofu, or chicken and heat through.
Serve with basmati rice, naan, or a crusty bread in a warm bowl.