Custom Attributes in the cart

Our store offers a free product when you buy a certain item. The way we’ve set it up;

You go to add the paid item to your cart
Popup shows you 2 free items you can “claim”
You claim your item and get a thank you message

The issue we have is that a customer can and has checked out with nothing in their cart except the free item. We want to devise a way that checkout can’t proceed if they have the free item in their cart but no paid equivalent.

I see there are some things that can be done using Custom Attributes and RegEx, but I’m a beginner in those kinds of edits. Can anyone help? I’ll update here as I work through it myself.

Here is my Read Only link