The parameters of your controller don't match with your route parameters, so you are probably missing to pass the task to parameters list on your route definition.
Route::get('tasks/category/{task}/{caid?}' , 'TaskController@getTaskByCategory');
Or, you don't make use of your $task parameter, so maybe you dont wan't to pass it in your controller.
//routes/web.php
Route::get('tasks/category/{caid?}' , 'TaskController@getTaskByCategory');
// TaskController.php
public function getTaskByCategory($caid = null){
//
}