The docs state that you have to call after() on a validator instance, and you already tried to validate it and therefore retrieve a response.
In short: remove validate() to fix it.
$validator = Validator::make($request->all(), [
'num1' => ['required', 'integer', 'gte:0'],
'num2' => ['required', 'integer', 'gte:0'],
'num3' => ['required', 'integer', 'gte:0'],
]);
$validator->after(function ($validator) {
if ($this->get('num1') + $this->get('num2') + $this->get('num3') != 100) {
$validator->errors()->add(
null, 'Something is wrong with this field!'
);
}
});