Есть ли способ добавить свои методы не трогая модель в laravel?
На самом деле это очень легко

#src/Model/ProductProxy.php
<?php

namespace App\Model;

use ВашПакет\Product;

class ProductProxy extends Product
{
    public function newMethod(): void
    {
        echo "Hello World!";
    }
}
Или так

<?php

namespace App\Model;

use ВашПакет\Product;

class ProductDecorator
{
  protected $decorated;

  public function __construct(Product $product) {
    $this->decorated = $product;
  }

  public function __call($method, $args) { return call_user_func_array([ $this->decorated, $method ], $args); }
  public function __callStatic($method, $args) { return call_user_func_array([ static::class, $method ], $args); }

  public function newMethod(): void
  {
    echo "Hello World!";
  }
}

В первом случае модель на автомате получит другую таблицу (она из имени класса делается), придется ставить protected $table = 'table_name'; а как захочешь добавить префикс в БД идти искать где префиксы вписывать ибо имена статикой. А добавишь в конфиг базы префикс - придется использовать модели в миграциях, а там в основном строки.

Во втором случае некоторые методы могут не работать из-за того что возвращают void например.

Так что:

<?php
class ProductService
{
  public function doSome(Product $product) : Product
  {
    $product->updated_at = new \DateTime('now');
    return $product;
  }
}