get('company_id'); return [ 'first_name' => 'required', 'email' => [ 'max:255', 'email', Rule::unique('contacts')->where(function ($query) use ($companyId) { $query->where('company_id', '=', $companyId); $query->whereNull('deleted_at'); }), Rule::unique('contact_email')->where(function ($query) use ($companyId) { $query->where('company_id', '=', $companyId); $query->whereNull('deleted_at'); }), ], ]; } public function withValidator($validator) { $validator->after(function ($validator) { $user = auth()->user(); if (!$user) { return; } $service = app(ContactFieldSettingsService::class); $errors = $service->validateDependencies($user, $this->all()); foreach ($errors as $fieldKey => $messages) { foreach ($messages as $message) { $validator->errors()->add($fieldKey, $message); } } }); } /** * Return JSON on validation failure instead of redirecting. */ protected function failedValidation(Validator $validator) { throw new HttpResponseException( response()->json([ 'status' => false, 'errors' => $validator->errors(), 'message' => 'Validation failed', ], 422) ); } }