public function findAll($type = '')
    {
        $data = [];
        $ar = self::cyrus();
        /*
         | Trigger before select events defined into
         | model class
         */
        $this->triggerEvent('beforeSelect');

        $this->buildQuery(); // Build Sql Query

        try {
            $stmt = $this->resolveConnection()->prepare($this->sqlQuery);

            $this->sqlQuery = null;
            $this->setDbStatement($ar->getTableName(), $stmt);
            $this->bindParam($stmt);
            $stmt->execute();
            $data = $this->fetchAs($stmt, $type);
            /*
             | Trigger after select events defined into model class
             */
            $this->triggerEvent('afterSelect');

            if ($stmt->rowCount() > 0) {
                return new Collection($data);
            } else {
                return new Collection([]);
            }
        } catch (PDOException $ex) {
            throw new \Exception('Database exceptions: Invalid query x'.$ex->getMessage());
        }
    }