Combine the beans, 4 cups of water, celery, onion, bay leaves, cumin, garlic powder, and parsley into a slow cooker.
Melt the butter with the olive oil in a skillet over medium heat; cook and stir the leeks in the butter mixture until tender and the smaller pieces start to brown, 8 to 10 minutes. Transfer the leeks to the slow cooker. In the same pan, cook and stir the ham until the edges start to brown; stir into the soup. Place the bacon into the hot skillet, and pan-fry until the bacon is crisp, about 10 minutes. Cut the bacon into bite-size pieces and stir into the soup. Pour the chicken stock into the hot skillet, and stir to dissolve any brown flavor bits from the skillet; pour the chicken stock into the soup. Season with sea salt and pepper.
Set the cooker to Low cook the soup until the beans are very tender, 6 to 8 hours. Roughly mash about half the beans with a potato masher to thicken the soup.