Put the spices (allspice, cumin, cloves and peppercorns) into a dry skillet and toast over a low heat to release their aroma. Pour into the bowl of a food processor.
Break up the achiote paste and add the vinegar, onion, garlic, oregano, bay leaves, salt and olive oil. Pulse to make a fine paste, then slowly add the orange juice until incorporated.
Pour about ⅔rds of the marinade into a large gallon Ziploc bag and add the pork shoulder, turning once or twice to coat the pork shoulder. Put the pork shoulder in the bag and seal tightly, then refrigerate overnight. Reserve the rest of the marinade to use on chicken breasts or flank steak (according to Thomasina Miers' original recipe, you can freeze the leftover marinade for later use).
While the pork is marinating, put the sliced red onions in a heatproof bowl and pour enough boiling water over the onions to soften them a bit (about 30 seconds). Drain the onions and add the lime juice and juice of 1 orange (if you're using hot peppers, you can also add a tablespoon or two to this mixture). Cover and refrigerate.
To cook the pork, empty the contents of the entire bag into the inner pot of your Instant Pot. Push "manual" and set the timer to 35 minutes, then use quick release (10 minutes on the "Keep Warm" setting and then releasing the steam lever). If the pork is not easily shredded wth a fork, seal the Instant Pot again and then add another 5 minutes under the "manual" setting (using quick release again to let the steam out).
Serve immediately with rice, chopped cilantro, thinly sliced radishes and pickled red onions.
Recipe by Grits and Chopsticks at https://www.gritsandchopsticks.com/the-gravy-train/2017/10/instant-pot-mexican-pork-pibil.html