Basic sign-up method, testable and with try/catch
For try/catch, statements you should ask yourself: what are you trying to achieve? Do you need to handle the error differently in one controller compared to the rest of the application? If yes, then wrap the entire contents of your method. 

If no, Laravel implements a global error handler. You simply need to throw your exceptions and Laravel handles the display of the errors. 

As for you unit testing, I am only learning PHPUnit at the moment. Judging by your code, I believe you should take some particular emphasis on learning the S.O.L.I.D principles.

When you abide by these principles you will ensure your code is testable. To be testable your methods and objects need to have a single responsibility, such as taking requests (controller), validation (Request objects in Laravel and saving data (Models). 

As for Doc blocks, refer to something like this. 

Comment you code often. For methods I always specify in the first line a description of what the method does. (it should have a single responsibility).
Then any parameters/arguments it takes (@param). Then any data it returns (@return). Specify the data type or 'void' if it returns nothing. Then finally any exceptions the method throws.