I had the same problem, which means creating a many-many relationship and a 1-to-many relationship between the same two classes.
The way to do this is as follows:
User Class:
class User{ static hasMany = [createdPosts: Post, subscribedToPosts : Post] static mappedBy = [createdPosts : "creator"] }
Publication class
class Post{ User creator static hasMany = [subscribers: User] static belongsTo = User }
I found the answer in this discussion
source share