@vajricaaaa I would do the clean up in the request, within 'prepareForValidation' method, creating a new array of emails and then using a rule for each item
eg
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules(): array
{
return [
'report_recipients' => ['required_if:report_type,Email'],
'validRecipients' => ['required_if:report_type,Email', 'array'],
'validRecipients.*' => ['required_if:report_type,Email', 'email'],
];
}
/**
* @return void
*/
public function prepareForValidation()
{
$validRecipients = str_replace(' ', '', $this->request->get('report_recipients'));
$this->merge(['validRecipients' => explode(',', $validRecipients)]);
}
/**
* @return array
*/
public function messages(): array
{
$messages = parent::messages();
$messages['validRecipients.*.email'] = 'Please ensure your report recipients are valid emails';
return $messages;
}