isOwnChecker = function (): bool { return false; }; $this->inTeamChecker = function (): bool { return false; }; } public function setIsOwn(bool $value): self { if ($value) { $this->isOwnChecker = function (): bool { return true; }; return $this; } $this->isOwnChecker = function (): bool { return false; }; return $this; } public function setInTeam(bool $value): self { if ($value) { $this->inTeamChecker = function (): bool { return true; }; return $this; } $this->inTeamChecker = function (): bool { return false; }; return $this; } /** * @param Closure(): bool $checker */ public function setIsOwnChecker(Closure $checker): self { $this->isOwnChecker = $checker; return $this; } /** * @param Closure(): bool $checker */ public function setInTeamChecker(Closure $checker): self { $this->inTeamChecker = $checker; return $this; } public function build(): ScopeCheckerData { return new ScopeCheckerData($this->isOwnChecker, $this->inTeamChecker); } }