create(['name' => 'Lightstorm']); $genre = Genre::factory()->create(['name' => 'Sci-Fi']); $m1 = Movie::factory()->create(['title' => 'The Abyss']); $m2 = Movie::factory()->create(['title' => 'Aliens']); $m1->studios()->sync([$studio->id]); $m2->studios()->sync([$studio->id]); $m1->genres()->sync([$genre->id]); $m2->genres()->sync([$genre->id]); $svc = new GetStudioWithMoviesService(); $res = $svc->handle($studio->id, ['per_page' => 20]); $this->assertSame($studio->id, $res['entity']->id); $this->assertSame(2, $res['movies']->total()); $first = $res['movies']->items()[0]; $this->assertTrue($first->relationLoaded('genres')); $res2 = $svc->handle($studio->id, ['q' => 'Aliens']); $this->assertSame(1, $res2['movies']->total()); } }