Add 2 tablespoons butter to a medium Dutch oven or heavy-bottomed pot over medium heat. Once melted, reduce the heat to medium-low.
Stir in 2 cups white rice, 1 finely chopped large onion, and 4 cloves minced garlic. Cook, stirring frequently, until the rice turns a pale yellow color and the onion is softened, about 5–7 minutes.
Add 1 (28-ounce) can diced tomatoes, 2 cups chicken stock, and ¼ teaspoon salt. Stir well to combine, then place 2 bay leaves on top.
Increase the heat and bring the mixture to a boil. Once boiling, reduce the heat to low, cover, and simmer for 20 minutes, or until the liquid is mostly absorbed and the rice is tender.
Remove the pot from the heat and let the rice rest, covered, for 10 minutes.
Discard the bay leaves and fluff the rice with a fork. Taste and season with additional salt as needed. If desired, add a small pinch of sugar to balance the acidity of the tomatoes.
If the rice is too wet, uncover and cook over low heat, stirring occasionally, for an additional 5 minutes. If the rice is dry but still undercooked, add ½ cup chicken stock, cover, and cook for 5 more minutes.