domain; $author = $input->authorOnly; $noOrphanVisits = $input->noOrphanVisits; if ($author) { yield RoleDefinition::forAuthoredShortUrls(); } if ($domainAuthority !== null) { yield $this->resolveRoleForAuthority($domainAuthority); } if ($noOrphanVisits) { yield RoleDefinition::forNoOrphanVisits(); } } private function resolveRoleForAuthority(string $domainAuthority): RoleDefinition { if ($domainAuthority === $this->urlShortenerOptions->defaultDomain) { throw InvalidRoleConfigException::forDomainOnlyWithDefaultDomain(); } $domain = $this->domainService->getOrCreate($domainAuthority); return RoleDefinition::forDomain($domain); } }