1
For the marinade: Heat a large skillet over medium-high heat. In batches, add the two kinds of chiles and toast, pressing the chiles flat with a spatula until they turn brick red, about 30 seconds. Transfer the chiles to a medium bowl. Add enough cold water to cover the chiles. Let stand until softened, 15–30 minutes. Strain the chiles, reserving the soaking liquid. Transfer the chiles, garlic, vinegar, cumin, oregano, salt, pepper, and cloves to a blender. With the machine running, add enough of the soaking liquid to make a thick sauce. You should have about 1 ½ cups.
2
Position a rack in the center of the oven and preheat the oven to 325°F. In a large sauté pan or Dutch oven, heat the oil over high heat. In batches, without crowding, add the beef and cook, turning occasionally until browned, 8–10 minutes. Transfer the beef to a plate. Return all the beef to the pot and add the marinade. Stir in enough water to barely cover the beef. Bring to a simmer over medium heat. Cover tightly and transfer the pot to the oven. Bake, turning occasionally, until the beef is very tender, about 2 hours. Remove from the oven.
3
Transfer the beef to a carving board and let stand for 10 minutes. Using two forks, shred the warm meat into bite-sized pieces.
4
Let the cooking liquid in the pot stand for 3 minutes. Skim off and discard any fat that rises to the surface. Bring to a boil over high heat and cook, stirring often, until the liquid is reduced to about 1 ½ cups, about 10 minutes. (The beef and sauce can be cooled, covered separately, and refrigerated for up to 1 day. Reheat the beef and sauce separately.)
5
Transfer the shredded beef to a serving bowl and stir in about 1/3 cup sauce to moisten the meat. Pour the remaining sauce into another serving bowl.
6
Serve the beef and sauce with the tortillas, cabbage, avocado slices, sour cream, and lime wedges, allowing guests to make their own tacos with the ingredients.