create(['name' => 'Bruce Willis']); $genre = Genre::factory()->create(['name' => 'Action']); $m1 = Movie::factory()->create(['title' => 'Alpha']); $m2 = Movie::factory()->create(['title' => 'Beta']); $m1->actors()->sync([$actor->id]); $m2->actors()->sync([$actor->id]); $m1->genres()->sync([$genre->id]); $m2->genres()->sync([$genre->id]); $svc = new GetActorWithMoviesService(); $res = $svc->handle($actor->id, ['per_page' => 20]); $this->assertSame($actor->id, $res['entity']->id); $this->assertSame(2, $res['movies']->total()); $first = $res['movies']->items()[0]; $this->assertTrue($first->relationLoaded('genres')); // Filter by title $res2 = $svc->handle($actor->id, ['q' => 'Alpha']); $this->assertSame(1, $res2['movies']->total()); } }