EG
$menu = [
'type' => 'post',
'post_id' => 1,
'category_id' => 1,
'external_link' => 'asdfasdf',
];
\Illuminate\Support\Facades\Validator::make(
$menu,
[
'type' => 'required|string',
'post_id' => 'required_if:type,post',
'category_id' => 'required_if:type,category',
'external_link' => 'required_if:type,link',
],
)->validate();