$account; public $scienceDisciplines; public function collect() { return new RequirementCollection([ new EntityRequirement( 'account', Account::class, ['id' => $this->request->get('id')] ), ], function() { return new RequirementCollection([ new ServiceRequirement( 'scienceDisciplines', AccountService::class, 'getScienceDisciplines', ['account' => $this->account] ) ]); }); } } in code... you can imagine if you are not careful this can become some kind of a callback hell