Boil cauliflower and potato. Check the water once the they are boiled. Take some out and keep it a side if there is too much water. The left over water can be used as vegetable broth or can be added to the bhaji at the end to get the right consistency. Mush all the boiled veggies, but do not make a paste. Add in frozen peas while its hot. Keep it aside.
Take oil and butter in a big pan. Once it heats up, saute garlic on low heat for a minute. Do not brown it.
Add in finely chopped onions with 1 tsp of salt. Saute on medium heat until translucent. Stirring frequently. Do not burn it.
Add chopped bell pepper and saute for another couple of minutes while stirring frequently.
Add chopped tomatoes along with all the dry spices listed above along with 2 tsp of salt. Mix and saute for another 5-6 minutes or until oil starts to seperate. Stir frequently.
Add boiled mushed veggies to sauted spice and veggie mixture. Mix it very well, making sure the spices are mixed evenly. Cover and simmer the bhaji for 10-12 minutes on low/medium heat, while stirring few times during this step to avoid any burning/sticking at the bottom. The consistency should be like stew, add in veggie broth you saved earlier or water to get the right consistency.
Add lime juice, chopped cilantro and more butter. Mix it well and taste it, add more salt if needed. Its ready to be served with some soft savory buttery buns, slices onions sprinkled with salt pepper and lime juice along with papad on side!