Sauté onion and garlic: Melt butter in a large pot over medium heat. Add diced onion and minced garlic, and cook until soft and fragrant, about 3 minutes.
Add sun-dried tomatoes: Stir in the chopped sun-dried tomatoes and their oil, letting them cook for 1 minute so the color releases into the butter.
Pour in broth: Add the chicken broth and Italian seasoning, and bring the pot to a gentle simmer over medium heat.
Poach the chicken: Lower the chicken breasts into the simmering broth, cover, and cook until they reach 165°F internally, about 15 minutes.
Shred the chicken: Transfer the chicken to a plate and shred it with two forks while it's still warm.
Return chicken and beans: Stir the shredded chicken back into the pot along with the drained cannellini beans.
Lower the heat: Reduce the heat to low so the broth stays at a gentle simmer, not a boil.
Stir in cream: Pour in the heavy cream and stir until the broth turns pale gold, about 2 minutes.
Melt in parmesan: Add the grated parmesan and stir until it melts and the broth thickens slightly, about 2 more minutes.
Wilt the spinach: Add the spinach by the handful, stirring until it wilts into the broth, about 2 minutes.
Season to taste: Add salt and black pepper, tasting the broth and adjusting as needed since the parmesan already adds some saltiness.
Serve warm: Ladle the soup into bowls and top with extra parmesan if you like a sharper finish.