public function joinWith($arguments)
    {
        $class = static::model();

        $tableWith = Inflector::tabilize($arguments[0]);

        $params = [
            $class->tableName.'.'.$class->primaryKey,
            '=',
            $tableWith.'.'.Inflector::singularize($class->tableName).self::DEFAULT_FOREIGN_KEY_SUFFIX,
        ];

        if (isset($arguments[1])) {
            $params = $arguments[1];
        }

        return $this->queryBuilder()->leftOuterJoin($tableWith, $params, $arguments[2]);
    }