Rinse the meat with cold water, pat dry it and then cut it into chunks. Place it in a large pot. Add the onion, garlic, the bay leaves and a tablespoon of salt.
Bring to a boil and cook over medium heat for about 1 hour. Skim off any foam that rises to the surface.
While the meat is cooking, prepare the vegetables: Wash and peel them, then cut them into chunks. Reserve.
PREPARE THE SAUCE
Place the tomatoes in a pot with plenty of water, bring to a boil and as soon as it boils, turn off the heat and add the guajillo and ancho chillies. Let it sit in the hot water for 20 minutes or until the water is just warm.
Open the chilies in half, discard the seeds and the stem and put in a blender together with the tomatoes, garlic and onion. Add a cup of the water where the chiles soaked and blend for 4 minutes at maximum speed. Strain the sauce.
Add the sauce and epazote to the pot where the meat is cooking. Keep cooking at medium heat for one more hour. Check the meat, it should be very tender before the next step (See notes).
Add the vegetables and if necessary, more water so that all the ingredients are well covered in the broth. Boil everything over medium heat until the vegetables are tender. Add salt to taste and turn off the heat.
Serve with chopped onion and green chilies, a squeeze of lemon (lime) and corn tortillas.