I feel stupid

I really want to leave my boyfriend. We have a son together and I just found out that I’m pregnant again, so I’m contemplating on whether I should stay or not. I love him a lot but he doesn’t appreciate me. He never tells me how much he cares about me or spends time with my son and I. In the past, I’ve caught him cheating on me multiple times, and he begged for me back all times so I took him back. He even punched me in my face multiple times when we had an argument and still hasn’t apologized for it. I feel broken and stupid because how could I let this get so far where I end up pregnant again. I’ve been wanting to leave him but It seems like I can’t let this man go plus I feel like no one is going to want me with two kids. All he is ever interested in talking about is money, and I yearn for more than just that. Every time he has done me wrong or cheated, he has always tried to spoil me with material things but in the end the pain always come back. I’m always thinking he’s cheating. I’m just tired and I want to leave him. Is this something that could be worked out?