public function __construct(Permissible $permissible, $permission, $attachment, $value) { if ($permission === null) { throw new \InvalidStateException("Permission may not be null"); } $this->permissible = $permissible; $this->permission = $permission; $this->attachment = $attachment; $this->value = $value; }