private function factory($model, $type)
    {
        $migrations = [];

        // We include all migrations files and collect it for make great manage
        foreach ($this->getMigrationFiles() as $file) {
            $migrations[$file] = explode('.', basename($file))[0];
        }

        // We create the migration database status
        $this->createMigrationTable();

        // We get current migration status
        $current_migrations = $this->getMigrationTable()
        ->whereIn('migration', array_values($migrations))->get();

        try {
            $action = 'make'.strtoupper($type);

            return $this->$action($current_migrations, $migrations);
        } catch (\Exception $exception) {
            throw $exception;
        }
    }