Dale professor. não estou conseguindo achar o erro, vou postar os meus códigos
web.php
<?php
use Laravel\Lumen\Routing\Router;
use App\Http\Controllers\SeriesController;
/** @var \Laravel\Lumen\Routing\Router $router */
$router->get('/', function () use ($router) {
    return $router->app->version();
});
$router->group(['prefix' => 'api'], function () use ($router){
    $router->group(['prefix' => 'series'], function() use ($router){
        $router->post('', 'SeriesController@store');
        $router->get('', 'SeriesController@index');
        $router->get('{id}', 'SeriesController@show');
        $router->put('{id}', 'SeriesController@update');
        $router->delete('{id}', 'SeriesController@destroy');
        $router->get('{serieId}/episodios', 'EpisodiosController@buscaPorSerie');
    });
$router->group(['prefix' => 'episodios'], function() use ($router){
    $router->post('', 'EpisodiosController@store');
    $router->get('', 'EpisodiosController@index');
    $router->get('{id}', 'EpisodiosController@show');
    $router->put('{id}', 'EpisodiosControllerr@update');
    $router->delete('{id}', 'EpisodiosController@destroy');
    });
});
baseController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
abstract class BaseController
{
    protected $classe;
    public function index(Request $request) {
       return $this->classe::paginate($request->per_page);
    }
    public function store(Request $request){
        return response()->json($this->classe::create($request->all()), 201);
    }
    public function show(int $id){
        $recurso = $this->classe::find($id);
        if(is_null($recurso)){
            return response()->json('', 204);
        }
        return response()->json($recurso);
    }
    public function update(int $id, Request $request){
        $recurso = $this->classe::find($id);
        if(is_null($recurso)){
            return response()->json('', 404);
        }
        $recurso->fill($request->all());
        $recurso->save();
        return $recurso;
    }
    public function destroy(int $id){
        $qtdDeRecursosRemovidos = $this->classe::destroy($id);
        if ($qtdDeRecursosRemovidos === 0) {
            return response()->json('', 404);
        }
        return response()->json('', 204);
    }
}
EpisodiosController.php
<?php
namespace App\Http\Controllers;
use App\Episodio;
class EpisodiosController extends BaseController
{
   public function  __construct() {
       $this->classe = Episodio::class;
   }
   public function buscaPorSerie(int $serieId){
      $episodios = Episodio::query()->where('serie_id', $serieId)->paginate();
      return $episodios;
   }
}
Serie.php
<?php
namespace app;
use Illuminate\Database\Eloquent\Model;
class Serie extends Model
{
    public $timestamps = false;
    protected $fillable = ['nome'];
    protected $appends = ['links'];
    public function epsodios(){
        return $this->hasMany(Episodio::class);
    }
    public function getLinksAttribute($links): array
    {
        return [
            'eu_mesmo' => '/api/series/' . $this.id,
            'episodios' => '/api/series/' . $this->id . '/episodios'
        ];
    }
}
Episodio.php
<?php
namespace app;
use Illuminate\Database\Eloquent\Model;
class Episodio extends Model
{
    public $timestamps = false;
    protected $fillable = ['temporada', 'numero','assistido', 'serie_id'];
    protected $appends = ['links'];
    public function series() 
    {
        return $this->belongsTo(Serie::class);
    }
    public function getAssistidoAttribute($assistido): bool
    {
        return $assistido;
    }
    public function getLinksAttribute($links): array
    {
        return [
            'eu_mesmo' => '/api/episodios/' . $this.id,
            'serie' => '/api/series/' . $this->serie_id
        ];
    }
}