In a large pot or Dutch oven, combine the soaked beans, ham bone (or pork hocks), water, onion, garlic, bay leaves, 1 teaspoon salt, and 1/2 teaspoon black pepper.
Bring to a boil over high heat, then reduce the heat to low and simmer for 2 hours.
Remove the ham bone (or pork hocks) from the pot and let cool.
Once cooled, remove the meat from the bones and chop it into small pieces.
Return the chopped meat to the pot.
In a medium skillet, heat the olive oil over medium-high heat. Add the celery and carrots and sauté for 5 minutes, or until tender.
Add the vegetables to the pot of soup.
Simmer for another hour or until the beans are tender—season with additional salt and black pepper to taste. Serve hot.
Enjoy!