I would say a polymorphic relation would be suitable for both questions.
In your first example, the polymorphic relation could be called location and would have an id column and a model name column on the attractions table.
In the second example, the tour might also have a location relationship
I wrote an article a long time ago about a user having a one of several profile types. If you think of user as Tour and your locations as Profiles then this may be of help https://novate.co.uk/using-laravel-polymorphic-relationships-for-different-user-profiles/