Well that completely depends on your application. It's pretty hard to push you in the right direction without much information...
If you have a paid subscription you also need to cancel their payments. However if you just set a date on the user object or subscription object and check on that date you should be fine as well. You can also run a cronjob to automatically turn these subscriptions into inactive for example when they reach that date.
when user becomes a premium member, you will know what package they subscribed to so you can set the expiry date accordingly.
if you are using stripe/braintree then try using CASHIER (theres laracast videos on it too) that makes it all very easy to work with subscription model