$optionalsRoles */ public function __construct(readonly private iterable $optionalsRoles) { } /** * @param Access $access * @return list */ public function getOptionalsRoles(Access $access):array { $roles = []; /** @var OptionalsRolesInterface $optionalsRoles */ foreach ($this->optionalsRoles as $optionalsRoles){ if($optionalsRoles->support($access)) { $roles[] = $optionalsRoles->getRole(); } } return $roles; } }