In a large bowl, combine the meat with vinegar, salt, and turmeric powder. Mix well so each piece is coated evenly. Cover and let it marinate for at least 1 hour, or ideally overnight in the fridge for deeper flavour.
Dry roast the chillies, cumin, coriander, peppercorns, mustard seeds, cloves, and cinnamon in a hot pan for 1 to 2 minutes until fragrant. Cool slightly, then grind with garlic, ginger, vinegar, and water to make a thick paste. Set aside for cooking.
Heat ghee in a heavy bottomed pot over medium heat. Add the sliced onions and sauté until golden brown. Stir frequently to prevent burning, as this step develops the rich base of the curry.
Add the prepared spice paste to the onions and cook for 2 to 3 minutes, stirring continuously. The paste should darken slightly and release its aroma, indicating the raw spice flavour has cooked out.
Stir in the chopped tomatoes, chilli powder, and garam masala. Cook until the tomatoes soften and the mixture turns into a thick masala paste. If it sticks, splash in a little water to keep it moving.
Transfer the marinated meat into the pan, stirring to coat each piece with the masala. Cook for 5 to 7 minutes until the meat begins to brown slightly and absorb the spices.
Pour in the water or stock, stir well, and bring to a gentle boil. Reduce the heat to low, cover the pot, and let the curry simmer for 45 to 60 minutes, or until the meat becomes tender and the sauce thickens beautifully.
Taste and adjust the salt or heat to your liking. If the curry tastes too sharp, add a teaspoon of sugar to balance the vinegar’s tang.
Let the Vindaloo rest for 10 minutes off the heat before serving. This allows the flavours to deepen and settle.
Garnish with chopped coriander. Serve hot with steamed basmati rice or warm naan bread for a complete meal. Vindaloo pairs beautifully with a cooling yoghurt raita on the side.