Laravel.io
<?php

namespace App\Listeners;

use App\Events\DeploymentStep1;
use App\Events\DeploymentStep2;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Mpociot\Blacksmith\Blacksmith;

class AddWeb2Server implements ShouldQueue
{
    use InteractsWithQueue;

    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        $blacksmith = new Blacksmith(env('FORGE_EMAIL'), env('FORGE_PASSWORD'));

        $this->blacksmith = $blacksmith;
    }

    /**
     * Handle the event.
     *
     * @param  DeploymentStep1  $event
     * @return void
     */
    public function handle(DeploymentStep1 $event)
    {
        $provider = $event->provider;

        $sitename = parse_url($provider->domain, PHP_URL_HOST);

        $server = $this->blacksmith->getActiveServers()->first();

        #$addSite = $server->addSite($sitename, $project_type = 'php', $directory = '/public', $wildcards = false);
        $addSite = true;

        // Check if addSite has been created
        if ($addSite && $provider->status == 2)
        {
            #$provider->server_site_id = $addSite->id;
            $provider->status = 3;
            $provider->save();

            session(['provider_status' => $provider->status]);

            #event(new DeploymentStep2($provider))->delay(60); 

            // wait 1 minute for execution of job
            event(new DeploymentStep2($provider))->delay(Carbon::now()->addSeconds(60));
        }
    }
}

Please note that all pasted data is publicly available.