In a medium bowl, whisk together olive oil, chili powder, cumin, 1 teaspoon salt and 1/2 teaspoon pepper. Stir in chicken until well combined; set aside in the refrigerator for 30 minutes, if desired.
Melt butter in a Dutch oven over medium heat. Working in batches, add chicken to the Dutch oven in a single layer and cook until golden brown, about 4-5 minutes per side; set aside.
Add onion, and cook, stirring occasionally, until tender, about 3-5 minutes.
Stir in garlic until fragrant, about 1 minute.
Stir in rice and lime zest until rice is lightly toasted, about 1-2 minutes.
Stir in chicken stock, scraping any browned bits from the bottom of the Dutch oven; season with salt and pepper, to taste. Return chicken to the Dutch oven in an even layer.
Bring to a boil; cover, reduce heat and simmer until rice is tender and chicken is cooked through, reaching an internal temperature of 165 degrees F, about 15-20 minutes. Let stand 5 minutes.
Remove chicken; add cilantro and lime juice to the rice, fluffing with a fork; season with salt and pepper, to taste.
Serve chicken immediately with rice and desired toppings.