public function boot()
    {
        if (static::$booted) {
            return $this;
        }

        $dispatcher = new Dispatcher();

        $connectionProvider = new CapsuleConnectionProvider(static::$capsule);

        $illuminate = new IlluminateDriver($connectionProvider);

        $driverManager = new DriverManager();

        $driverManager->addDriver($illuminate);

        static::$manager = new Manager($driverManager, $dispatcher);

        static::$instance = $this;

        static::$booted = true;

        return $this;
    }