Preparing the Beans:
Rinse dried white beans thoroughly under cold water.
Place beans in a large bowl and cover with 8 cups of water. Soak for at least 8 hours or overnight.
Drain soaking water and rinse beans again.
Transfer beans to a pot with 4 cups fresh water. Bring to a rolling boil.
Reduce heat to medium-low and simmer partially covered for 35-40 minutes, skimming foam occasionally.
Beans should be creamy inside but hold their shape. Reserve cooking liquid.
Cooking the Beef:
Heat olive oil in a Dutch oven over medium heat.
Add diced beef and cook over medium-high heat for 5 minutes until it releases juices.
Reduce heat to medium-low, cover, and cook for 20 minutes, checking occasionally.
Add ¼ cup water if pan looks dry. Continue cooking for another 20-25 minutes until beef is fork-tender.
Building the Stew:
Add butter to the tender beef and let it melt.
Add diced onions, cover, and cook over medium-low heat for 5 minutes until translucent, stirring occasionally.
Stir in tomato paste and pepper paste. Cook uncovered for 2-3 minutes, stirring constantly, until color deepens.
Add diced peppers and tomato. Stir well, cover, and cook for 3 minutes on medium-low.
Add ½ cup water and stir to combine.
Add cooked beans along with all their cooking liquid.
Add salt, cumin, black pepper, and paprika. Stir everything together.
Increase heat to medium-high and bring to a boil.
Immediately reduce heat to medium-low and simmer gently for 10 minutes.
Remove from heat and let rest for 15 minutes before serving.