Thanks to Rule::when() we can conditionally apply validation rules in laravel.
In this example we validate the value of the vote only if the user can actually vote the post.
use Illuminate\Validation\Rule; public function rules(){ return [ 'vote' => Rule::when($user->can('vote', $post), 'required|int|between:1,5'), ]}
Tip given by @cerbero90