Cut the beef chuck into 2-inch cubes and place them in a large bowl.
Season with salt and black pepper. Toss well to coat evenly.
Heat the oil in a large skillet or heavy-bottomed pot over medium-high heat.
Add the beef and brown on all sides for about 6 minutes.
Transfer the browned beef to a plate and set aside.
Reduce heat to medium and add the chopped onion to the same skillet.
Cook the onion for about 15 minutes, stirring frequently, until deeply caramelized.
Add the minced garlic and cook for 2 minutes.
Stir in the garam masala, cumin, paprika, turmeric, mustard, cayenne pepper, ginger, and cinnamon.
Cook for 1 minute until fragrant.
Add the tomato paste and stir until fully combined.
Pour in the apple cider vinegar, scraping up any browned bits from the bottom of the pan.
Cook for 2 to 3 minutes while stirring constantly.
Add the beef stock and stir well.
Return the beef to the skillet and bring the mixture to a gentle boil.
Reduce the heat to medium-low, cover, and simmer for about 60 minutes.
Stir occasionally and add additional stock if the sauce becomes too thick.
Once the beef is tender and the sauce has thickened, taste and adjust seasoning if needed.
If the vinegar flavor is too pronounced, add ½ to 1 teaspoon brown sugar and simmer for another few minutes.
Serve the Beef Vindaloo hot over basmati rice with naan and a dollop of Greek yogurt if desired.