public function hasManyThroughMany(
        $related,
        $through,
        $firstKey = null,
        $secondKey = null,
        $localKey = null,
        $throughKey = null
    )
    {
        $through = new $through;
        $firstKey = $firstKey ?: $this->getForeignKey();
        $secondKey = $secondKey ?: $through->getForeignKey();
        $localKey = $localKey ?: $this->getKeyName();
        return new HasManyThroughMany((new $related)->newQuery(), $this, $through, $firstKey, $secondKey, $localKey, $throughKey);
    }