Heat oil in a medium pan. Add onions and cook for 4 to 5 minutes on medium high heat stirring frequently. Place a lid on the pan to speed up cooking. Add ginger and garlic cook for a minute. Add tomatoes and mix well. Cook for 2 to 3 minutes or until tomatoes become soft. Add 2 tablespoons of Shan spice mix. Tip - You can add more spice seasoning in the end after mixing in the tofu for a spicier keema. Lower the heat.
Stir in tofu and break it in with a spatula so that it's ground and crumbly. Add salt and cook for 1 to 2 minutes. Turn the heat off. Garnish with cilantro.
To make the raita, whisk yogurt in a medium bowl. Peel and grate the cucumber. Add grated cucumber to the yogurt. Sprinkle salt and cumin. Mix well. Garnish with cilantro, keep chilled in the refrigerator until ready to be served.
Cut the bottom stem of the lettuce so the leaves can be easily separated. If using iceberg lettuce, it is ok if each leaf gets broken into 3 to 4 pieces. Just layer 2 to 3 over each other to form a cup. Add 2 to 3 spoons of tofu keema on the lettuce cups. Garnish with purple cabbage, carrots, and cilantro. Add a squeeze of lime. Add a spoonful of raita and serve.