Add the beans to a container and cover with until it is about 4 inches over the top of the beans. Cover and set at room temperature overnight.
In the morning drain the beans and add to a medium-size pot and cover with water until the beans are covered by about 2 inches along with a sprig of rosemary.
Cook the beans for about 30-35 minutes over low to medium heat or until tender.
Remove the sprig of rosemary and take ½ of the beans and the liquid and put them into a blender and puree them until smooth. Set aside and keep the other ½ of the beans in the liquid warm.
In the meantime, add the olive oil to a large pot over low to medium heat and cook the onions, celery, carrots, and garlic for 8 to 10 minutes or until tender.
Next, add in the kale, cabbage, cooked beans in water, pureed beans, tomatoes, and vegetable stock, and cover with a lid and cook for 15-20 minutes over low to medium heat or until the kale and cabbage are tender.
Season the soup well with salt and pepper.
To serve, place some bread in a serving bowl and pour some of the soup over top. Garnish with optional shredded parmesan cheese and chopped fresh parsley and rosemary.