Put the beans in a colander and give them a good rinse. Pick out and bad ones and watch for small stones.
For faster cooking beans, place them in a saucepan and cover with several inches of water. Let soak overnight. The next day, drain and rinse beans and continue cooking as instructed.
Boil the water along with bay leaf and salt.
Once the water is boiling, add the beans and bring back to a full boil.
Turn off the heat, cover, and let stand for an hour.
Turn the heat to high and bring the beans back to a boil. Then reduce heat and let simmer covered until the beans are tender, about 1 1/2 to 2 hours.
When the beans are tender, heat the olive oil in a small sauté pan and cook the onions, garlic, and spices until the onion is tender and beginning to brown, about 5 minutes. Add to beans and simmer 30 minutes more.