01 - If using dried beans, soak overnight in plenty of water. Drain and rinse, then boil for 45–60 minutes until tender. Drain and set aside. If using canned, drain and rinse.
02 - Set oven to 350°F.
03 - In a large ovenproof pot or Dutch oven, cook bacon over medium heat until crisp. Remove bacon and set aside, leaving rendered fat in pot. Omit this step for vegetarian or vegan versions.
04 - Add chopped onion to the pot and sauté for 5 minutes until softened. Stir in minced garlic and cook for an additional minute.
05 - Mix in tomato paste, smoked paprika, and cumin. Cook for 1 minute until fragrant.
06 - Add crushed tomatoes, molasses, brown sugar, apple cider vinegar, Dijon mustard, salt, black pepper, and water or vegetable broth. Stir thoroughly to integrate flavors.
07 - Fold in cooked or canned beans along with crisped bacon, if using. Blend gently to combine all ingredients evenly.
08 - Bring the mixture to a gentle simmer on the stovetop.
09 - Cover the pot and transfer to the preheated oven. Bake for 1 hour, stirring halfway through. Add a splash of water if the sauce becomes too thick.
10 - Remove the lid during the last 15 minutes of baking to thicken the sauce if desired. Serve warm.