You seem smart and perceptive. Yes, you are very generous with your boyfriend, but he is simply lazy and ungrateful to you and all around him. Do you think you could live with this the rest of your life? Keep in mind that your love will never change him, he has to want to change, and he has to take action. But he does not seem like the type to take action.
People who do pot for a long time tend to have permanent brain damage, where their motivation gets less and less. So, over time, he will be more and more lazy. You should really keep this in mind.
You are not his mother, your boyfriend needs to step up and be a man, and change his own life for the better. Wouldn't you like a boyfriend who gives you as much as you give him? Wouldn't that be a lot better? Well, they are out there, so go get one.
I have a long time interest in psychology, specializing in relationship dynamics for 30 years.
(Please note, we give the best advice we can based on the information given in a post. For better advice, please include the age of all romantic partners.)