Rinse the bean mix thoroughly and soak overnight or use a quick soak method until beans are slightly softened.
Heat olive oil in a large pot over medium heat, then sauté onions, carrots, and celery until softened and fragrant, about 5–7 minutes.
Add garlic and cook for 30 seconds until aromatic, being careful not to burn it.
Stir in soaked beans, chicken broth, and water, then bring to a gentle boil.
Reduce heat to low and simmer uncovered for about 60 minutes, stirring occasionally until beans begin to soften.
Add diced tomatoes, spices, salt, and pepper, then continue simmering for another 20–30 minutes until beans are tender and the broth thickens.
Stir in cooked ham or sausage if using, and let it heat through for 5–10 minutes.
Finish with a splash of lemon juice or vinegar to brighten the flavor before serving.