How do you forgive someone who has hurt your child

Hi everyone. This is my third update/post on this situation. Some backstory for anyone who doesn't know I made a post several years back about finding out my son is pansexual and had been in a long term relationship with his best friend Ethan. They've been friends since they were small kids and honestly the signs were there. They got married young. Problems started to arise when Ethan got put on opioids for pain because of getting hurt and got addicted to those opioids. He doesn't have family because his family disowned him for marrying a male. My son tried to stick it out but left him in August because my son threw his drugs and Ethan kicked him into a dresser. That was the first time Ethan has ever gotten violent. So he's become a person we don't recognize. My son didn't really know what he was going to do. He was depressed. His hair started falling out. Over the weekend he was gone and Monday told me he drove Ethan to rehab. He was gone because they were talking all weekend. Ethan was apologizing again for everything. Saying he's going to rehab and he understands if my son isn't gonna wait for him. My son told me *tmi* but they ended up having sex and he still wants to be with him. I asked was he sure and he said yes. He's going to a 45 day rehab place to stay clean. And if he does it my son is moving back in. I love Ethan like my own kid. I've always seen him as a son. But he did some really messed up stuff to my actual child and put him through a lot. I know the physical violence was only a one time thing that happened but I j worry about him and hope he's making the right decision. If Ethan really is going to get sober and change and spend the rest of his life making it up to my son how do I forgive him. Because that phone call I got when my son was packing his stuff because Ethan put hands on him broke me. He was devastated. How do I forgive him for putting my child through that. (Please no ask God. I got that advice from someone and I am not religious)