In a large pot or Dutch oven, combine all the ingredients except the cayenne. Add water to cover and bring to a boil, skimming off any foam that comes to the surface. Partly cover, and adjust the heat so that the mixture bubbles steadily; cook until the meat is very tender, 1 to 2 hours.
Transfer the meat to a bowl, reserving the cooking liquid. When the meat is cool, shred it with your fingers. Transfer the garlic, onion, and chiles (discard the bay leaf) to a blender along with a splash of the cooking liquid. Blend until smooth. Add the sauce to the meat and toss. Taste, adding a little cayenne if you want it spicier; you may want to over-season the meat slightly if you’re using it as a filling. Use, or store in the fridge for up to 1 week, or in the freezer for up to a few months.