connectionProviderId = $provider->id; $this->name = $provider->name; } public function rules(): array { return [ 'name' => [ 'required', 'string', 'min:3', 'max:255', function (string $attribute, mixed $value, Closure $fail): void { $slug = Str::slug($value); $query = ConnectionProvider::query() ->where('slug', $slug); if ($this->connectionProviderId) { $query->where('id', '!=', $this->connectionProviderId); } if ($query->exists()) { $fail("The name '{$value}' is already taken."); } }, ], ]; } }