He hurt me and is playing the victim

So my boyfriend’s been hanging out with this guy that does hardcore drugs. I simply asked my boyfriend “you’re not going to start snorting are you?” I feel like it was an honest question. He got really mad so I walked out of the room to allow him to calm down. I came back everything was fine. 3 hours later he tells me I’m a negative person and I had tears rolls down my face. I said I don’t try to be I try to look for the positive in everything. When I went to try to hug him he grabbed me by the throat, twisted my arm back, tightly grabbed my fingers and told me he wanted to break my bones. When I went to walk in the other room he grabbed ahold of my throat and shoved me down on the couch and said he wanted to kill me. I went and laid down he was on the couch then comes in the bedroom and lays next to me like nothing happened. The next day he blocked me and told me it was over between us. He said if I come get my belongings he would fuck me up. We work together, we’ve been together 7 years. At work that next morning he followed me around saying do you need to go home why are you upset. Then goes and tells my boss that they need to move me because my attitude affects everyone’s mood. So later that day he told me I made him a bad person. I betrayed his trust. Etc. He’s playing the victim and I’m just apologizing.

Why would someone act like this? Especially since we’ve been together so long. It hurts because I love him deeply. It’s hard to let him we’ve had 4 miscarriages together and I just don’t know why he’s walking away from me so easily. We’ve been so good together besides that bad night. I just really need advice or someone’s wisdom. 🥺💜