None of these other methods will work. Even a person with the strongest willpower might one day want to sell their Bitcoin. That's why if you want to hold your Bitcoin long-term, send it to the wallet of someone you trust and agree not to get it back before a certain period. Another alternative is to send it to an address you created, store the key on a flash drive and put that drive somewhere you can't easily access. After a certain period, you can go there and get it back.
There's no other way. If your Bitcoin is somewhere you can reach easily, there's always a chance you won't be able to resist selling it.
Sending Bitcoin to someone to trust is as good as keeping Bitcoin on centralized exchanges. I might as well as pick exchange over giving Bitcoin that is tempting as gold to another person. I'm not sure if I have a develop mind to even give Bitcoin to a friend because all of them I know are going to use their problem as excuse to finish everything on the market sell. I'm not sure if I'm the only person that doesn't have the balls to support this advice.
I might as well as agreed to send a multisig wallet address so that I don't get to spend the Bitcoin and the person I trusted with the other key don't spend it without my knowledge. I can have confidence of giving out a M of N key to a trusted person but not the Bitcoin itself.
The solution to this is make sure you have a good source of income that can sort your bills and have other source of income that can do the things you want to do. Hope to see problems that your financial level can solve, having the one above your league will tempt you to sell if you don't have another way to solve the problems.