Combine all the ingredients in a medium bowl and mix to make a homogenous paste. Add the pork and toss to coat well; refrigerate for several hours. (For the best flavor, refrigerate the pork, covered, for up to 16 hours.).
Preheat the oven to 350°F.
Heat the oil in a large nonstick ovenproof skillet over medium-high heat. Remove the pork from the spice paste and pat dry, reserving the spice paste in the bowl. Add the pork to the pan and cook, turning occasionally, for 5 minutes, or until browned on all sides. Remove the pork and set aside.
Reduce the heat to medium, add the onions and garlic, and cook, scraping up any browned bits from the bottom of the pan, for 5 minutes, or until soft.
Add the rice, stirring until well coated with the onion mixture. Stir in the broth, tomatoes, saffron and the reserved spice paste. Bring to a boil, reduce the heat to a simmer and cook for 15 minutes.
Stir in the capers, cover, and transfer to the oven. Bake for 10 minutes. Stir in the pork, then scatter the peppers, shrimp (if using), and artichoke hearts over the rice.
Cover and bake for 10 minutes more, or until the rice is tender, the liquid has been absorbed, and the shrimp (if using) are opaque and pink.
To serve, stir the rice to incorporate all the ingredients and season to taste with salt and pepper.