Prep the chiles: Remove stems and seeds from guajillo and ancho chiles. Toast them in a dry skillet over medium heat for 30–60 seconds per side until fragrant.
Do not burn.
Soak the chiles: Place toasted chiles in a bowl and cover with hot water. Soak 20 minutes until pliable. Reserve 1/2 cup of the soaking liquid.
Start the broth: In a large pot, add beef, half the onion (in chunks), 2 garlic cloves, bay leaves, and enough broth to cover by 1 inch.
Bring to a boil, then lower to a gentle simmer. Skim foam. Cook 1.5–2 hours until beef is very tender.
Make the chile sauce: Blend soaked chiles with reserved chile liquid, remaining garlic, tomato, cumin, 1 tsp salt, and a few grinds of pepper until smooth.
Add a splash of broth if needed to help it blend.
Cook the sauce: Heat oil in a skillet over medium. Pour in the blended sauce and cook 5–7 minutes, stirring, until slightly thickened and the color deepens. This step mellows any bitterness.
Shred the beef: Remove beef from the pot.
Discard bay leaves and onion pieces. Shred or cube the beef into bite-sized pieces.
Combine: Return shredded beef to the pot. Stir in the cooked chile sauce and the hominy.
Add remaining broth or water to reach a hearty, soupy consistency.
Simmer and season: Add Mexican oregano and adjust salt and pepper. Simmer 20–30 minutes to let flavors meld. Finish with a squeeze of lime for brightness.
Serve: Ladle into bowls and top with cabbage, radishes, diced onion, cilantro, a pinch of dried oregano, and more lime.
Add avocado if you like.