public function insert($arguments = [])
    {
        $ar = null;
        $ar = self::cyrus();
        /*
         | Trigger Before create events if
         | defined by user into model class
         |
         */
        $this->triggerEvent('beforeCreate');

        // Build Sql Query and prepare it
        $sql = $this->getInsertQuery(strtoupper(__FUNCTION__), $ar, $arguments);

        try {
            $statement = $this->resolveConnection()->prepare($sql);
            static::$queries[] = $statement->queryString;

            // we will bind all parameters into the statement using execute method
            if ($return = $statement->execute($arguments)) {
                $ar->{$ar->getKeyName()} = (int) $this->resolveConnection()->lastInsertId();
                /*
                 | Trigger after create events if
                 | defined by user into model class
                 |
                 */
                $this->triggerEvent('afterCreate');

                return $return;
            }
        } catch (PDOException  $exception) {
            throw new \RuntimeException($exception->getMessage());
        }
    }