sometimes: Only apply the rest of the validation rules if the field shows up in the request.
nullable: If the field shows up in the request and is null (undefined, empty, has no value at all, etc), do not apply the rest of the validation rules.
In other words, if you have a field that might not make it to the request (for instance a form with a <select> field where users might select no value at all), you probably need 'sometimes', because a <select> with no value doesn't return the field key at all, which would throw an error if you try and validate it against 'nullable'. You can then apply additional validation (such as 'exists:table,column') in the event that the request returns the field.
More information here :
https://www.leonelngande.com/laravel-validation-sometimes-vs-nullable/
And here :