I wish this was more true. I went through a breakup because of timing. My girlfriend said that I did so much for her, but she was just not ready and was indecisive on whether to be in a relationship at the time. So she let me go, not wanting to hold me back while she processed her own situation. We ended on good terms and honestly I cared for her deeply.
Sometimes you make all of the right decisions and behave in all of the right ways, but if the other person is not ready to do the same, they won't stay no matter how much you want them to stick with you.