At quick glance it looks like you're making some, possibly unreasonable, assumptions about things. For example, in the cart controller;
$product['line1'] = $request->input('line1');
$product['line2'] = $request->input('line2');
$product['line3'] = $request->input('line3');
$product['line4'] = $request->input('line4');
$product['line5'] = $request->input('line5');
$product['line6'] = $request->input('line6');
$product['line7'] = $request->input('line7');
$product['line8'] = $request->input('line8');
$product['line9'] = $request->input('line9');
$product['line10'] = $request->input('line10');
What if I needed 11 or 15 lines? Or only 1, or none?
This should probably instead be an array (not sure where the form is, didn't feel like digging) but something like this in the markup:
<input type="text" name="line[]" ...>
<!-- include some sort of javascript 'add another line' button. -->
Then in the controller you can just loop through $request->input('line') which would be an array.
Also you'll almost certainly want to provide translations for error messages, and other user feedback, and possible route names as well. Not everyone understands .. what is it, Lithuanian?