If using dried beans, drain and rinse them after soaking. Boil them in a pot of water for 30 minutes, then drain. If using canned beans, rinse and set aside.
In a large pot or Dutch oven, heat the olive oil over medium heat. Brown the beef pieces on all sides, then remove them from the pot and set aside.
Sprinkle in the paprika, cumin, ground coriander, black pepper, and chili powder. Mix well to coat the onions and garlic.
Add the chopped tomatoes and tomato paste. Let it simmer for 5 minutes for the flavors to meld.
Cooking
Return the browned beef to the pot, along with the partially cooked (or canned) beans. Pour in enough water or broth to cover everything. Toss in the bay leaf.
Cover and let it cook on low heat for about 1.5 to 2 hours, or until the meat is tender and the beans are cooked through. Stir occasionally and add water if needed to maintain a slightly thick sauce.
Taste and adjust salt and spices as necessary. Remove the bay leaf before serving.
Serving
Serve hot, garnished with fresh parsley or coriander. Pair it with fresh bread, couscous, or rice for a complete meal.
Notes
Leftovers keep well in the refrigerator for 3-4 days. For longer storage, freeze portions for up to 3 months. Thaw in the refrigerator overnight and reheat on the stove or microwave.