Cashier automatically listens/processes webhooks from Paddle if configured correctly with the .env variables. By adding the webhook route to the web.php file, I was overriding the default behavior of Cashier because this was taking precedence:
Route::post('/paddle/webhook', WebhookController::class);
The solution would be to remove this line so Cashier can process webhooks and create the Transaction & Subscription records when the webhooks are received. Defining that route in web.php is not necessary.