如何一起使用自定义和默认验证?

I have custom validation for validating data. The custom validation doesn't have unique rule as I need to ignore this on update, therefore I am using unique rule on store() method. But this is ignored, and it only works if I change the custom validation with default validation.

It works if I have the following:

public function store(Request $request)
    {
        if (!$this->user instanceof Employee) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        $request->validate([
            'name' => 'required|max:50|unique:centers'
        ]);

        $center = Center::create($request->all());
        return response()->json($center, 201);
    }   

But this doesn't work if I change the method signature to the following:

public function store(CustomValidation $request)

How can I use both together? I do not want to move the custom validation code inside the method as I have to repeat msyelf for update method then.

I think it will help you

use Illuminate\Contracts\Validation\Rule;

class CowbellValidationRule implements Rule
{
    public function passes($attribute, $value)
    {
        return $value > 10;
    }

    public function message()
    {
        return ':attribute needs more cowbell!';
    }
}

and

public function store()
{
    // Validation message would be "song needs more cowbell!"
    $this->validate(request(), [
        'song' => [new CowbellValidationRule]
    ]);
}

or

public function store()
{
    $this->validate(request(), [
        'song' => [function ($attribute, $value, $fail) {
            if ($value <= 10) {
                $fail(':attribute needs more cowbell!');
            }
        }]
    ]);
}