Laravel.io
<?php


namespace App\Http\Controllers\Auth;


use App\Http\Controllers\Controller;
use App\User;
use Carbon\Carbon;
use Illuminate\Http\Request;

class VerifyEmailController extends Controller
{
    public function markVerify(Request $request)
    {
        if (!$request->hasValidSignature()) {
            return response()->json([
                'status' => false,
                'code' => 'InvalidActivateUrl',
                'messages' => [
                    [__('auth.account.verify.invalid_signed_url')]
                ]
            ], 401);
        }

        $user = User::find($request->route('userId'))->first();

        if(!$user){
            return response()->json([
                'status' => false,
                'code' => 'AccountNotFound',
                'messages' => [
                    [ __('auth.account.notfound') ]
                ]
            ], 401);
        }

        if($user->trashed()){
            return response()->json([
                'status' => false,
                'code' => 'AccountNotFound',
                'messages' => [
                    [ __('auth.account.notfound') ]
                ]
            ], 401);
        }

        if(!$user->hasVerifiedEmail()) {

            $user->markEmailAsVerified();

            return response()->json([
                'status' => true,
                'messages' => [
                    [ __('auth.account.verify.success') ]
                ]
            ], 200);
        }

        return response()->json([
            'status' => false,
            'messages' => [
                [ __('auth.account.verify.already') ]
            ]
        ], 200);
    }
}

Please note that all pasted data is publicly available.