User Group Based Products

Hello, i am currently developing a membership based system. I have pretty much been able to test everything out, the are 2 main issues i am facing, first:



Once a user becomes a premium member, he should not see the premium membership subscription. I have currently set this product to be available for only guests and registered users. However, premium members can still see the product (as they are registered members i think?) and i only want the product to be available for the groups i select.



Once premium members cancels their membership, they can still purchase products that are only available to premium members because all premium products require premium membership which shows in the order history as completed. But how can subscription cancellation alter the order state from completed to canceled?



Sidenote:

I want everyone to see what is being offered to premium members but they need to enroll into subscription to access them (through the required products)