Rinse rice in a fine mesh strainer under cold water until the water runs completely clear. Shake off excess water and let surface-dry briefly on paper towels.
Heat butter and oil in a medium saucepan over medium heat. Once butter is fully melted and foaming, add the dried rice. Stir constantly for 2 minutes until rice smells faintly nutty and some grains look very lightly golden. Add garlic, stir 30 seconds.
Pour in broth or water, add salt, and stir once. Bring to a full boil over medium-high heat. Immediately reduce to the lowest setting, cover tightly, and cook undisturbed for 18 minutes.
Remove saucepan from heat entirely. Keep lid on and rest for 5 minutes. Do not lift the lid.
After resting, remove lid and fluff rice gently with a fork using lifting motions from the pan bottom. Pour lime juice over the surface and scatter zest across the top. Fold through with the fork until evenly distributed.
Scatter chopped cilantro over the rice and fold through with 3 to 4 gentle turns. Taste and adjust salt or add more lime if needed. Serve immediately.