1Mash the garlic with the kosher salt into a rough paste. Whisk it with the orange juice, 1/2 cup lime juice, olive oil, cumin, oregano and black pepper to make the mojo.
2Pour off 1/2 cup of the mojo into a jar and refrigerate it. This reserved portion never touches raw pork and becomes the sauce later.
3Cut deep slits all over the pork, about 1 inch deep, and put it in a large zip-top bag or a deep dish. Pour the rest of the mojo over it, add the bay leaves, and turn to coat. Refrigerate at least 4 hours, ideally overnight, turning once.
4Heat the oven to 325°F with a rack in the lower third. Scatter the yellow onions in a roasting pan or dutch oven and set the pork on top, fat side up. Pour in the marinade and bay leaves, and cover tightly with a lid or foil.
5Roast covered for 2 1/2 hours, until the pork is very tender and a fork twists in easily.
6Remove the cover, raise the oven to 425°F, and roast another 25 to 30 minutes, basting once with the pan juices, until the top is deeply browned and the center reads 195°F.
7While the pork finishes, toss the thin red onion with 2 tbsp lime juice and a pinch of salt, and cook the white rice according to the package.
8Move the pork to a cutting board and rest it 15 minutes, loosely tented. Scoop the roasted onions into a bowl, discard the bay leaves, and strain the pan juices into a saucepan, skimming off the fat. Add the reserved mojo and simmer hard for 8 to 10 minutes, until slightly syrupy.
9Carve the pork across the grain into thick slices. Plate over rice with roasted onions, spoon the sauce over, and top with the lime-pickled red onion and cilantro.