¿Cómo obtener nombre de las columnas de una relación de muchos a muchos en Laravel / Eloquent?

Tengo una relación de muchos a muchos entre “products” y “categories”, puedo obtener datos de esta relación a partir de su nombre en el modelo en el que me encuentro (que es parte de la misma), entonces estoy en el modelo “Product”, y de esta forma:

$thisModel = (new self); // A new empty Model
$relation  = (new self)->$relationName();
$relatedModel = $relation->getRelated(); // A new empty Model

Código de la siguiente respuesta: https://stackoverflow.com/a/56089111/3919660

Tengo los dos modelos conectados y puedo obtener sus nombres. Necesito los campos que corresponden a las FKs en la tabla intermedia. Si hago un trazado de la relación:

dd($relation);

Tengo lo siguiente:

IlluminateDatabaseEloquentRelationsBelongsToMany {#1377 ▼
  #table: "category_product"
  #foreignPivotKey: "product_id"
  #relatedPivotKey: "category_id"
  #parentKey: "id"
  #relatedKey: "id"
  #relationName: "categories"
  #pivotColumns: ()
  ...

¿Cómo puedo obtener los nombres de los campos que relacionan “products” y “categories” de esta relación?

Nota: actualmente estoy obteniendo estos datos a partir una RAW query:

$query = 'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
    WHERE TABLE_SCHEMA = "skyerp" AND TABLE_NAME = "' . $tableName . '" AND 
    COLUMN_KEY!="PRI" AND DATA_TYPE="bigint"';