If you have a cranky staffer, it may be best to cut her loose before her bellyaching infects others.
I was a guest speaker for insurance agents where the CEO shared his philosophy, one dead battery will not jumpstart another.
Some team members are a joy to be around, and others aren't. This may be inherent in a persons personality,or, he has just outgrown his job and it's making him miserable. He is no longer a good fit for the company and his contribution is limited by his attitude. It's shocking to see how many people fall into this scenario where they quit the job a long time ago, but they still show up for the pay check.
While it's painful to tell someone they are no longer needed, it's worth the gain.
Also, it may not be as punishing as you think. Many people who dread their work are often relieved to get the news, so they can go on to a workplace more suitable for them.
People have a driving need to be happy, free them up so they can do just that.
Of course, you can't fire someone for no cause, so document performance issues, act on them quickly, and focus on work performance problems.
Where possible, let the person dictate the terms of departure to give them control.