Yes, but it won't clean up the code very much... Also, the 1st argument you're passing in is not an action, it's a route name...
For something like this, I'd probably create a macro or a partial to keep my template from becoming too hard to read.
Working with Laravel URLs
link_to_route
To get started, you can use link_to_route()...
link_to_route($name, $title = null, $parameters = array(), $attributes = array())
// routes.php
Route::get('/topics/{category}/{forum}', [
'as' => 'topics.show',
'uses' => 'TopicsController@show'
]);
// *.blade.php
{{ link_to_route('topics.show', 'Link Text', [
$topic->forum->category->id,
$topic->forum->id,
'page' => $topic->posts_paginated->getLastPage()
]); }}
link_to_action
If you want to use an action, link_to_action() is very similar, except it uses the action instead.
link_to_action($action, $title = null, $parameters = array(), $attributes = array())
Given the same Route as above, you'd use...
// *.blade.php
{{ link_to_action('TopicsController@show', 'Link Text', [
$topic->forum->category->id,
$topic->forum->id,
'page' => $topic->posts_paginated->getLastPage()
]); }}
Result & Explanation
Both examples above will generate:
<a href="http://domain.tld/topics/23432/5434?page=2">Link Text</a>
Basically, anything after the expected number of parameters is exceeded, the remaining arguments are added as a query string.
Note
If you don't want to generate the HTML too, you can just use route() or action() respectively.