Alternative for JOIN
Instead of using a trigger, you should use a Calculated Column.
This way, any change in stock_out would affect the users score.
It would be calculated automaticaly, and without duplicate rows.  

An AFTER UPDATE TRIGGER could then be used to store record of previous user score, by reading data from DELETED and inserting it into an audit table.