He's at that age where you can only offer advice to your son. You can no longer tell him what to do.
A kid is trying to find himself and wants to make decisions on his own. I'd suggest just being more personal and bond with him. Figure out what his goals are in life and what he's trying to accomplish. Explain how people don't just get what they want in life they have to work and fight for it.
You cannot tell him what to do or how to act. You can suggest this is a better way to act because. But by demanding or forcing things, nothing will ever happen. My dad tries to tell me what to do and I purposely don't care or listen to what he has to say, also because of his own personal history and experience.
It's just we are all individuals and we enjoy to think and make decisions individually. You can help in the process of debating what decision I will choose, but in the end it is my decision.
I'm 22 years old and going on 23. I've yet to get my life together and I am productive at times but not all the time. I do smoke weed and do drink. It's a work in progress and I'm still working on it. I can tell you a few years ago, I didn't really know what I wanted or what I wanted to do in my life. I can also tell by the younger people I meet in school, they aren't as focused on their future as someone whose already 20+. I can honestly say at the age of 18, I didn't want to grow up because 18 doesn't come around again

.
When you are 15, nothing really matters to you but being 15 and enjoying it. I did run my own business at 15 but then I got tired of it and took a break. I went back to being a kid, realized later on that I do need money and I must work hard for it.
As long as your son, knows and understand that he eventually will need to make money for himself. So he can have his own house, car, money and a family someday. I believe, this is the most important thing you need to tell your kids.
They eventually need to fend for life on their own. Just like any animal in the wild.
Some kids are just more motivated than others.
I wouldn't recommend scolding your kids or punishing them. If you keep just taking things away or punishing. You guys are just going to be fighting always. Myself as a kid, I won't put up with that childish behavior. If you think, I am a child. What you are doing by taking things away is childish.
A kid and parent should have mutual respect for each other. You have to realize, all your kids really have are you. Their friends are only there for fun. Friends can't support their own friends because the parents friends are supporting them. Your kids have to be able to go to your for guidance and help if they need any, in whatever it is. If you are always on their ass about shit. They really will never open up to you because they dont' want to hear your crap. The whole point is to just love your kids unconditionally and help them however you can.
It's tough shit but parents just don't win. Give your kids some reason to love your ass, then they'll respect you and do what you say because they want to make you happy, because you've been there for them. What else is family about?