Soak both the rice and beans separately overnight.
Discard the water from the rice and set aside.
If using dried beans, put the water with the beans to boil and reduce to medium heat until tender. This should take 50 minutes and beans should be soft to the touch. The water from simmering will reduce to 2 cups.
If using canned beans add them to an additional 1 ½ cups of water (use the water that comes with the beans)
Sautee the onions, garlic and the remaining ingredients on medium heat in the olive oil for 3-5 minute until slightly brown.
Add the readily available beans in water, and rice to the frying pan with the sautéed vegetables. Cover the pan and reduce heat to low. If using dried beans use the extra cup of water instead.
Allow the rice and beans to slow cook for 1 hour, check the level of moisture throughout and shake the frying pan periodically.
Halfway through cooking the water should have absorbed almost completely. There should be enough moisture present to cook the rice. If the rice seems too dry, add ¼ cup more of water, to replenish.
About 45 minutes into cooking, cover the rice with the foil and allow the rice to continue to stem whilst retaining moisture for another 15 minutes. Don't forget to add the lid to the pan to act as a double barrier.
Once the rice is finally cooked it should be soft (not sticky) and fluffy.