create(['name' => 'Adventure']); $m1 = Movie::factory()->create(['title' => 'Hudson Hawk']); $m2 = Movie::factory()->create(['title' => 'Die Hard']); $m1->genres()->sync([$genre->id]); $m2->genres()->sync([$genre->id]); $svc = new GetGenreWithMoviesService(); $res = $svc->handle($genre->id, ['per_page' => 20]); $this->assertSame($genre->id, $res['entity']->id); $this->assertSame(2, $res['movies']->total()); $first = $res['movies']->items()[0]; $this->assertTrue($first->relationLoaded('genres')); $res2 = $svc->handle($genre->id, ['q' => 'Hudson']); $this->assertSame(1, $res2['movies']->total()); } }