Make the chile sauce: Add 3 cups of water and the guajillo, ancho, and árbol chiles to a medium pot. Bring to a boil over high heat, cover, remove from heat, and let soak for 15 minutes.
Carefully transfer the softened chiles and the hot water to a large blender. Add the remaining fresh water, the chili powder, ground cumin, salt, garlic, and Mexican chocolate. Blend for 2-3 minutes until completely smooth. Set aside.
Prepare the meat: Season all sides of the pork with the salt and black pepper. Heat the oil in a large pot or Dutch oven over medium-high heat. Add the pork, and sear the meat on all sides until nicely browned.
Combine and cook: Pour in the red chile sauce and scrape the bottom of the pot with a wooden spoon to loosen all the brown bits. Stir in the broth, hominy, and dried oregano.
Bring the pot to a boil, reduce the heat to a low, cover, and simmer for 2 ½ hours until the pork is fall-apart tender.
Shred the pork with a fork or tongs (it should fall apart very easily). Taste and season with more salt, if necessary.
Serve with toppings such as thinly shredded cabbage, cilantro, lime juice, sliced radishes, diced onions, and dried Mexican oregano.
Notes
Mexican chocolate: This ingredient is optional, but I find that it adds a little extra depth of flavor that compliments the chiles. It doesn't make the chile sauce sweet at all.
Swap the protein: You can use beef chuck roast instead of pork shoulder. Treat it exactly the same by searing it first, then braising it in the broth.
Use the right chiles: You can find dried chiles in the Hispanic foods aisle of your local grocery store or a specialty Mexican grocer. If you can’t find them in your area, you can easily buy them online.
Customize the spice: Omit the árbol chiles for a milder heat, or add in a couple more for a spicy stew.
Not enough broth? Some people love their pozole extra brothy. If you find that the pozole isn’t soupy enough for you, stir in some more broth at the end until it’s to your desired consistency.