Heat the vegetable oil in a large pot or Dutch oven over medium-high heat.
Add the beef shanks and sear on all sides until well-browned. Remove the meat and set aside.
In the same pot, add the chopped onion and cook until translucent.
Stir in the minced garlic and cook for another minute.
Add the sliced carrots, chopped tomatoes, and chopped hot peppers. Cook for about 5 minutes, or until the tomatoes break down.
Stir in the ground cumin, ground paprika, ground coriander, ground turmeric, ground black pepper, and salt.
Add the beef or vegetable broth and stir well.
Return the browned beef shanks to the pot, ensuring they are covered by the liquid.
Bring the mixture to a boil, then reduce the heat to low.
Cover and simmer for about 2-3 hours, or until the meat is tender and falls off the bone.
Once the meat is tender, remove the beef shanks from the pot.
Garnish with fresh cilantro if desired.
Enjoy your meal!