You don't have to wait until you've achieved your goal to reward yourself. Remember that a big goal can be broken down into smaller mini-goals.
Reward yourself for any mini-goals you reach, and any other small successes that you have along the way.
Rewards don't have to cost money, but you can also 'save up' for rewards.
For example: Put the money aside you were spending on cannabis then at the end of the week or the month spend the money on a reward for yourself.