Soak beans overnight (or for 12 hours) in plenty of fresh, filtered water.
Drain and rinse well. Place the beans a large stockpot covered with a few inches of water. Cut one onion in half (no need to peel) and add it to the pot with the bay leaf. Bring to a boil, reduce to simmer, and cook covered for about an hour. Around the 45-minute mark, add one teaspoon of salt. Stir and let cook until tender. Drain, discarding the onion and bay leaf.
In a large saucepan or dutch oven, melt the ghee. Peel and dice the remaining onions and add them to the pot with about a half teaspoon of the remaining salt, stir to coat and cook until golden, about 7-10 minutes. Add the leek, a little more salt, and stir into the onions. Cook until wilted, add the garlic, stir well and cook for 3-4 minutes until fragrant. Stir in the oregano, chilli flakes, tomato paste, sun-dried tomatoes, and black pepper. Cook for two minutes.
Pour in the broth, stir well to loosen any browned bits on the bottom of the pot. Bring to a boil, then reduce to simmer, add the cream, bring to a bare simmer, then turn off the heat, fold in the parmesan until melted through. Then add the butter beans, stir well to coat.
Lastly, fold in the kale and spinach, letting the residual heat wilt the greens. Stir in the lemon juice, adding it to taste.
To serve, divide amongst bowls, add a chunk of buttery toasted sourdough, and grate more parmesan over top with some cracked black pepper. Say thank you and enjoy.