I think I solved it now:
So I needed to make my Follow model extend MorphPivot and the add the using() method to my relationships.
So it my Tag model I now have:
public function followers(): MorphToMany
{
return $this->morphToMany(User::class,'followable','follows')->using(Follow::class);
}
and my User model:
public function tagFollows(): MorphToMany
{
return $this->morphedByMany(Tag::class,'followable','follows')->using(Follow::class);
}
Which means that I can do:
$follower = User::factory()->create();
$tag = Tag::factory()->create();
$follower->tagFollows()->attach($tag);
$follow = $follower->tagFollows->first()->pivot;
$this->assertEquals(0, $follow->unseen);
$post = Post::factory()->create();
$post->tags()->attach($tag);
$follow->refresh();
$this->assertEquals(1, $follow->unseen);