Prep the chiles. Remove stems and seeds from guajillo and ancho chiles. If using chile de árbol, leave some seeds for heat.
Rinse to remove dust.
Toast and soften. In a dry skillet over medium heat, toast the chiles for 30–45 seconds per side until fragrant—don’t burn them. Transfer to a bowl and cover with hot water. Soak 15–20 minutes until pliable, then drain.
Char aromatics. In the same skillet, add the tomatoes, half the onion, and the garlic.
Cook until lightly charred and softened, about 6–8 minutes, turning occasionally.
Blend the sauce. Add softened chiles, charred tomatoes, onion, garlic, vinegar, sugar (if using), oregano, cumin, cinnamon, cloves, peppercorns, and 1 cup broth to a blender. Blend until very smooth. If needed, strain for a silkier sauce.
Season and sear the beef. Pat beef dry and season generously with salt.
Heat oil in a large Dutch oven over medium-high heat. Sear beef in batches until browned on all sides, 6–8 minutes total. Don’t crowd the pot.
Build the braise. Return all beef to the pot.
Add the remaining half onion, bay leaves, the blended sauce, and enough broth to mostly submerge the meat (about 4–5 cups).
Simmer low and slow. Bring to a gentle simmer, then cover and cook over low heat for 2.5–3 hours, or until the beef is fall-apart tender. Skim excess fat if needed, but save some for flavor.
Adjust seasoning. Taste the broth (consomé). Add salt as needed.
If it’s too intense, stir in a splash of water; if it needs brightness, add a squeeze of lime or a touch more vinegar.
Shred the beef. Remove beef to a bowl and shred with forks. Discard bay leaves and any bones if you used short ribs. Return shredded beef to the pot and stir to coat with the consomé.
Serve. For stew, ladle beef and broth into bowls and top with onion, cilantro, and lime.
For tacos, heat a skillet, dip tortillas lightly in the top layer of birria fat, fill with beef and cheese, and griddle until crisp and melty. Serve with a cup of consomé for dipping.