Been there, done that. The hardest thing I ever did was throw my son out. This was my baby, my reason for living for the last 21 years.
But he was also a lazy, entitled, disrespectful shit and while I know that my own softness probably cause dat least some of that I finally reached the point where I couldn't take it any more. He had to go because I was at real risk of hurting him or breaking down completely.
He went to stay with his gf. I sobbed for 2 days, then phoned him and asked him to meet me for a coffee. We talked on neutral ground, I told him WHY what he did was so upsetting to me then I left.
2 months later, after sporadic texting, phoning and the odd meet up, he asked if he could come home. By that time he had got a job, and he was a different person.
He's still here, aged 28. Still working. Pays rent. Buys and cooks his own meals, does his own washing. We get on great (although I still have to occasionally get in his face about smoking in the house, I don't smoke at all, he tries it on maybe once or twice a year)
Making him leave will be a shock to him, and hopefully give him a reality check.
Good luck. Have a (hug) and some 