*/ protected function casts(): array { return [ Prohibition::ATTRIBUTE_NAME => 'string', ]; } public function getName(): string { return $this->name; } #[Scope] protected function expired(Builder $query): Builder { $tableName = Config::string('prohibition.table_names.model_prohibitions'); /** @phpstan-ignore-next-line */ return $query->where("$tableName.expires_at", '<', now()); } #[Scope] protected function notExpired(Builder $query): Builder { $tableName = Config::string('prohibition.table_names.model_prohibitions'); /** @phpstan-ignore-next-line */ return $query->where("$tableName.expires_at", '>', now()) ->orWhereNull("$tableName.expires_at"); } }