Pat the pork cubes dry, season all over with salt and pepper, and let sit at room temperature for about 15 minutes while you prep the chiles.
Stem and seed the guajillo and ancho chiles, toast them in a dry skillet for about 30 seconds per side until nutty and slightly darker, then soak in hot water for 20 minutes until softened.
Blend the softened chiles with the diced tomatoes, tomato paste, cumin, oregano, smoked paprika, and 1 cup of the soaking liquid until smooth, then strain through a fine-mesh strainer and set aside.
Heat 2 tablespoons of oil in the Dutch oven over medium-high heat and sear the pork in batches for 3 to 4 minutes per side until deeply browned, then transfer to a plate.
Lower the heat to medium, add the last tablespoon of oil, and cook the diced onion for 4 to 5 minutes until softened, then stir in the garlic and cook for 1 minute more.
Pour the strained chile sauce into the pot and cook for 5 to 6 minutes, stirring frequently and scraping the bottom, until it darkens and thickens slightly.
Return the seared pork and juices to the pot, pour in the chicken broth, add the bay leaves, bring to a gentle boil, then lower to a slow simmer, cover partially, and cook for 1 hour and 30 minutes until the pork is nearly fork-tender.
Stir in the potatoes and carrots and simmer uncovered for another 30 to 40 minutes until the vegetables are tender and the pork pulls apart easily, adding a splash of broth if too thick.
Remove and discard the bay leaves, taste and adjust salt, then ladle into bowls and top with chopped cilantro, a squeeze of lime, and diced onion or radishes if you like.