This is an incomplete & not simple guide on how to facilitate lasting change in people (others or yourself):
1. Accept them for who they are.
(This includes accepting that you might not be able to change them)
2. Find out why they are like that and connect with their story and values.
3. Find their individual incentive to make the change.
You'll always need sub- and additional steps, but these three steps are imo universial and essential.
Step one is the hardest and most important. If you can't accept the person right now, even if it's yourself, practice with someone easier to accept first.