Cómo establecer dinámicamente el nombre de la tabla en el modelo elocuente

Soy nuevo en Laravel. Estoy tratando de usar Eloquent Model para acceder a los datos en DB.

Tengo tablas que comparten similitudes como el nombre de la tabla.

Así que quiero usar un modelo para acceder a varias tablas en DB como a continuación, pero sin suerte.

¿Hay alguna forma de establecer el nombre de la tabla dinámicamente?

Cualquier sugerencia o consejo sería apreciada. Gracias de antemano.

Modelo:

class ProductLog extends Model
{

    public $timestamps = false;

    public function __construct($type = null) {

        parent::__construct();

        $this->setTable($type);
    }
}

Controlador:

public function index($type, $id) {

    $productLog = new ProductLog($type);

    $contents = $productLog::all();

    return response($contents, 200);
}

Solución Para aquellos que sufren el mismo problema:

Pude cambiar el nombre de la tabla por la forma @Mahdi Younesi sugirió.

Y pude agregar dónde las condiciones como a continuación

$productLog = new ProductLog;
$productLog->setTable('LogEmail');

$logInstance = $productLog->where('origin_id', $carrier_id)
                          ->where('origin_type', 2);

Respuestas a la pregunta(1)

Su respuesta a la pregunta