Preheat the oven to 325 degrees.
In a small bowl, combine chili powder, cumin, oregano, 2 teaspoons salt, and 1 teaspoon black pepper. Rub the mixture all over the pork.
Place the pork in a Dutch oven (or ovenproof pot) and arrange the onions, garlic, and bay leaves around the meat. Squeeze the oranges and limes over the pork and add the orange halves to the pot (we’ll remove them later). Pour 2 cups of water around the pork. The pork should be about halfway submerged, with about half of the meat remaining above the surface. If not, add a bit more water.
Set the pot over medium-high heat and bring to a boil. Spoon some of the liquid over the pork, cover the pot and transfer it to the oven.
Cook for 3 to 5 hours (3 to 4 hours for boneless and 4 to 5 hours for bone-in), until the pork is very fork-tender and shred-able. For perfectly shredded pork, cook until the meat reaches an internal temperature of 185 to 190 degrees. At lower temperatures, the pork won’t easily melt into perfect shreds.
Remove the pot from oven. Transfer the pork to a large shallow bowl.
Remove and discard the oranges, onions, garlic, and bay leaves, reserving the sauce for drizzling over the shredded pork.
Use two forks to shred the pork. Add 1/2 cup of the reserved sauce and toss to coat. Reserve the remaining sauce for serving.
At this point you can eat the pork as is, or for a more authentic taste, broil as instructed below.
Preheat the broiler.
Transfer the pork to a rimmed baking sheet (line with aluminum if desired) and spread out in an even layer. Place the baking sheet under the broiler (4 to 5 inches from the heat source) and broil until the edges of the pork are browned and crispy (keep a close eye so the pork doesn’t char).
Serve the pork with the tortillas, reserved sauce, and your choice of garnishes.