Soak the beans. Rinse the dried beans and soak them in plenty of water overnight.
This shortens cooking time and helps them cook evenly.
Cook the beans. Drain the soaking water. In a large pot, add beans, fresh water to cover by a couple of inches, the scallions, thyme, garlic, and allspice. Bring to a boil, then lower to a gentle simmer.
Cook until beans are tender but not mushy, about 45 to 60 minutes. Add more water as needed to keep them submerged.
Season the pot. When the beans are just tender, stir in the coconut milk, salt, black pepper, and sugar (if using). Nestle the whole Scotch bonnet on top.
Do not cut or puncture it—this provides flavor without too much heat.
Measure your liquid. You’ll want about 3 1/2 to 4 cups of liquid for 2 cups of rice, depending on the rice type. Add water or broth until you reach that amount. Taste and adjust salt now—this is your only chance to season the liquid properly.
Rinse the rice well. Wash the rice under cold water until the water runs mostly clear.
This step helps keep the rice fluffy and prevents clumping.
Add the rice. Stir the rinsed rice into the pot, distributing it evenly among the beans. Keep the thyme sprigs and Scotch bonnet in there, but avoid breaking the pepper.
Simmer gently. Bring the pot back to a steady simmer over medium heat. When bubbles appear across the surface, reduce to low, cover tightly, and cook for 18 to 22 minutes, depending on your rice.
Avoid lifting the lid too often.
Steam off-heat. Turn off the heat and let the pot rest, covered, for 10 minutes. This helps the grains set and finish steaming without sticking.
Finish and fluff. Remove the thyme stems and Scotch bonnet. Stir in the butter or coconut oil if using.
Fluff gently with a fork to separate the grains.
Serve. Spoon into a serving bowl and garnish with extra chopped scallions or thyme leaves if you like. Serve alongside jerk chicken, grilled fish, stewed oxtail, or roasted vegetables.