Gather all ingredients. Remove stems from guajillo chiles and soak them in hot water until soft.
In a blender, combine soaked chiles, garlic, cumin, bay leaves, salt, and enough water to create a smooth marinade.
Heat olive oil in a large pot over medium heat. Sear the beef on all sides until browned.
Pour the marinade over the beef and add chopped onions and enough water to cover. Bring to a simmer and cover.
Reduce heat to low and let it cook for about 3 hours until the beef is fork-tender.
Shred the beef with two forks. Warm corn tortillas on a skillet, then fill each with shredded beef topped with cilantro and onions.
Serve with the rich broth for dipping.