@shenald No, you haven’t done anything wrong.
The return type of the driver method is the Provider interface (https://github.com/laravel/socialite/blob/5.x/src/Contracts/Provider.php). This interface only declares two methods (redirect and user).
So even though what is actually returned from the driver method (an instance of the GoogleProvider implementation) does have a userFromToken method, Intelephense is saying, “I was told I was getting this interface, and that interface does not contain that method” even though the actual implementation does.
You could satisfy Intelephense by manually typing the returned object first instead:
/** @var \Laravel\Socialite\Two\GoogleProvider $google */
$google = Socialite::driver('google');
$user = $google->userFromToken($request->input('token'));
$user = $this->findOrCreate($user);
