It does seem like this should be possible, and it would be nice to have the ability to pass in an array of instances. I think it would be worth submitting a pull request to the Laravel repository to allow for this functionality.
The parseIds() method should be updated to accept an array of instances and extract the IDs from them. You could try something like this:
public function parseIds($value)
{
if (is_array($value)) {
$value = collect($value);
}
if ($value instanceof Arrayable) {
$value = $value->toArray();
}
if (is_array($value)) {
return array_map(function ($value) {
if ($value instanceof Model) {
return $value->getKey();
}
return $value;
}, $value);
}
return (array) $value;
}