Определяя подсказку типа, вы меняете сигнатуру метода по сравнению с исходным кодом, который вы перезаписываете.
См. Eloquent / Model :
/**
* Determine if two models are not the same.
*
* @param \Illuminate\Database\Eloquent\Model|null $model
* @return bool
*/
public function isNot($model)
{
return ! $this->is($model);
}
Inдругими словами, вы, вероятно, хотите иметь что-то вроде:
public function isNot($user) {
return $this->id !== $user->id;
}
или, возможно:
public function isNot($user) {
if (!$user instanceof User) {
throw new \InvalidArgumentException('Expected an instance of User');
}
return $this->id !== $user->id;
}
Это решение не идеально, но оно гарантирует, что вы сохраните оригинальную сигнатуру метода.